v1
Double column
API
CLI
JS Client

Services /

Update service build options

Updates the build options for a given service.

Required permission

Project > Services > General > Update

Path parameters

    • projectId

      string required
      ID of the project
    • serviceId

      string required
      ID of the service

Request body

  • {object}
    Build from a Dockerfile
    • dockerfile

      {object} required
      • buildEngine

        string
        Build engine to use. Defaults to recommended build engine `kaniko`
        one of
        kaniko, buildkit
      • useCache

        boolean
        Should intermediate image layers be cached?
      • dockerFilePath

        string
        The file path of the Dockerfile.
        pattern
        ^\/([a-zA-Z0-9-._]+\/)*[a-zA-Z0-9-._]+$
      • dockerWorkDir

        string
        The working directory of the Dockerfile.
        pattern
        ^\/([a-zA-Z0-9-._]+\/)*[a-zA-Z0-9-._]*$
      • buildkit

        {object}
        • useInternalCache

          boolean
          Should use persistent storage to store all layers?
        • internalCacheStorage

          integer required
          Persistent storage per build in MB
    • prRestrictions

      [array]
      An array of pull request build rules. Only supported for build services. Each commit belonging to a pull request on a branch that matches one of the provided build rules will be built automatically.
      • string
        A pull request build rule. Can contain `*` as a wildcard to match multiple branch names. For example, `feature/*` will build all commits from pull requests from branches that start with `feature/`.
        pattern
        ^[^?:@$~ [\]{}]*$
    • branchRestrictions

      [array]
      An array of branch build rules. Only supported for build services. Each commit belonging to a branch that matches one of the provided build rules will be built automatically.
      • string
        A branch build rule. Can contain `*` as a wildcard to match multiple branch names. For example, `feature/*` will build all commits from branches that start with `feature/`.
        pattern
        ^[^?:@$~ [\]{}]*$
    • pathIgnoreRules

      [array]
      An array of path ignore rules. A commit will only be built if a file has been changed that does not match any of the ignore rules. Path ignore rules follow `.gitignore` syntax.
      • string
        A path ignore rule, following `.gitignore` syntax. For example, `*.md` will ignore all files ending with `.md`.
        max length
        260
    • isAllowList

      boolean
      If `true`, the functionality of `pathIgnoreRules` will be inverted. A commit will only be built if a file has been changed that matches one or more of the rules in `pathIgnoreRules`.
    • ciIgnoreFlagsEnabled

      boolean
      If `true`, enables commit ignore flags. If a commit message contains one or more of the flags in `ciIgnoreFlags`, that commit will not be built.
    • ciIgnoreFlags

      [array]
      An array of commit ignore flags. If a commit message contains one or more of these flags, that commit will not be built. Defaults to `["[skip ci]", "[ci skip]", "[no ci]", "[skip nf]", "[nf skip]", "[northflank skip]", "[skip northflank]"]`
      • string
        A commit ignore flag.
        max length
        72
    • dockerfileTarget

      string
      If your Dockerfile contains multiple build stages, you can specify the target stage by entering its name here.
    • dockerCredentials

      [array]
      • string
        The ID of the docker credentials to use.
        pattern
        ^[A-Za-z0-9-]+$
    • includeGitFolder

      boolean
      Include .git folder inside the build context
    • fullGitClone

      boolean
      Include the entire git history as part of the .git folder. Only relevant if "includeGitFolder" is set.
    • storage

      {object}
      • ephemeralStorage

        {object}
        • storageSize

          integer
          Ephemeral storage per build in MB
          one of
          16384, 32768, 65536, 131072, 262144, 524288
          min
          16384
          max
          65536
OR
  • {object}
    Build from a Buildpack
    • buildpack

      {object} required
      • builder

        string
        Buildpack stack to use. Defaults to recommended stack `HEROKU_22`.
        one of
        HEROKU_22, HEROKU_22_CLASSIC, HEROKU_20, HEROKU_18, GOOGLE_V1, CNB_ALPINE, CNB_BIONIC, PAKETO_TINY, PAKETO_BASE, PAKETO_FULL
      • buildpackLocators

        [array]
        Array of custom buildpacks to use.
        • string
          Url or registry identifier of custom buildpack.
      • buildContext

        string
        The working directory to build in.
        pattern
        ^\/([a-zA-Z0-9-._]+\/)*[a-zA-Z0-9-._]*$
      • useCache

        boolean
        Should build dependencies be cached?
    • pathIgnoreRules

      [array]
      An array of path ignore rules. A commit will only be built if a file has been changed that does not match any of the ignore rules. Path ignore rules follow `.gitignore` syntax.
      • string
        A path ignore rule, following `.gitignore` syntax. For example, `*.md` will ignore all files ending with `.md`.
        max length
        260
    • isAllowList

      boolean
      If `true`, the functionality of `pathIgnoreRules` will be inverted. A commit will only be built if a file has been changed that matches one or more of the rules in `pathIgnoreRules`.
    • ciIgnoreFlagsEnabled

      boolean
      If `true`, enables commit ignore flags. If a commit message contains one or more of the flags in `ciIgnoreFlags`, that commit will not be built.
    • ciIgnoreFlags

      [array]
      An array of commit ignore flags. If a commit message contains one or more of these flags, that commit will not be built. Defaults to `["[skip ci]", "[ci skip]", "[no ci]", "[skip nf]", "[nf skip]", "[northflank skip]", "[skip northflank]"]`
      • string
        A commit ignore flag.
        max length
        72
OR
  • {object}
    Don't modify build type settings
    • prRestrictions

      [array]
      An array of pull request build rules. Only supported for build services. Each commit belonging to a pull request on a branch that matches one of the provided build rules will be built automatically.
      • string
        A pull request build rule. Can contain `*` as a wildcard to match multiple branch names. For example, `feature/*` will build all commits from pull requests from branches that start with `feature/`.
        pattern
        ^[^?:@$~ [\]{}]*$
    • branchRestrictions

      [array]
      An array of branch build rules. Only supported for build services. Each commit belonging to a branch that matches one of the provided build rules will be built automatically.
      • string
        A branch build rule. Can contain `*` as a wildcard to match multiple branch names. For example, `feature/*` will build all commits from branches that start with `feature/`.
        pattern
        ^[^?:@$~ [\]{}]*$
    • pathIgnoreRules

      [array]
      An array of path ignore rules. A commit will only be built if a file has been changed that does not match any of the ignore rules. Path ignore rules follow `.gitignore` syntax.
      • string
        A path ignore rule, following `.gitignore` syntax. For example, `*.md` will ignore all files ending with `.md`.
        max length
        260
    • isAllowList

      boolean
      If `true`, the functionality of `pathIgnoreRules` will be inverted. A commit will only be built if a file has been changed that matches one or more of the rules in `pathIgnoreRules`.
    • ciIgnoreFlagsEnabled

      boolean
      If `true`, enables commit ignore flags. If a commit message contains one or more of the flags in `ciIgnoreFlags`, that commit will not be built.
    • ciIgnoreFlags

      [array]
      An array of commit ignore flags. If a commit message contains one or more of these flags, that commit will not be built. Defaults to `["[skip ci]", "[ci skip]", "[no ci]", "[skip nf]", "[nf skip]", "[northflank skip]", "[skip northflank]"]`
      • string
        A commit ignore flag.
        max length
        72
    • dockerfileTarget

      string
      If your Dockerfile contains multiple build stages, you can specify the target stage by entering its name here.
    • dockerCredentials

      [array]
      • string
        The ID of the docker credentials to use.
        pattern
        ^[A-Za-z0-9-]+$
    • includeGitFolder

      boolean
      Include .git folder inside the build context
    • fullGitClone

      boolean
      Include the entire git history as part of the .git folder. Only relevant if "includeGitFolder" is set.
    • storage

      {object}
      • ephemeralStorage

        {object}
        • storageSize

          integer
          Ephemeral storage per build in MB
          one of
          16384, 32768, 65536, 131072, 262144, 524288
          min
          16384
          max
          65536

Response body

  • {object}
    Response object.
    • data

      {object} required
      Result data.
    API
    CLI
    JS Client

    POST /v1/projects/{projectId}/services/{serviceId}/build-options

    Example request

    Request body
    Build from a Dockerfile
    curl
    curl --header "Content-Type: application/json" \
      --header "Authorization: Bearer NORTHFLANK_API_TOKEN" \
      --request POST \
      --data '{"dockerfile":{"buildEngine":"kaniko","useCache":false,"dockerFilePath":"/Dockerfile","dockerWorkDir":"/"},"prRestrictions":["feature/*"],"branchRestrictions":["feature/*"],"pathIgnoreRules":["README.md"],"isAllowList":false,"ciIgnoreFlags":["[skip ci]"],"dockerCredentials":["example-docker-credential"],"storage":{"ephemeralStorage":{"storageSize":16384}}}' \
      https://api.northflank.com/v1/projects/{projectId}/services/{serviceId}/build-options
    OR
    Build from a Buildpack
    curl
    curl --header "Content-Type: application/json" \
      --header "Authorization: Bearer NORTHFLANK_API_TOKEN" \
      --request POST \
      --data '{"buildpack":{"builder":"HEROKU_22","buildpackLocators":["https://buildpack-registry.heroku.com/cnb/mars/create-react-app"],"buildContext":"/","useCache":false},"pathIgnoreRules":["README.md"],"isAllowList":false,"ciIgnoreFlags":["[skip ci]"]}' \
      https://api.northflank.com/v1/projects/{projectId}/services/{serviceId}/build-options
    OR
    Don't modify build type settings
    curl
    curl --header "Content-Type: application/json" \
      --header "Authorization: Bearer NORTHFLANK_API_TOKEN" \
      --request POST \
      --data '{"prRestrictions":["feature/*"],"branchRestrictions":["feature/*"],"pathIgnoreRules":["README.md"],"isAllowList":false,"ciIgnoreFlags":["[skip ci]"],"dockerCredentials":["example-docker-credential"],"storage":{"ephemeralStorage":{"storageSize":16384}}}' \
      https://api.northflank.com/v1/projects/{projectId}/services/{serviceId}/build-options

    Example response

    200 OK

    The operation was performed successfully.

    JSON

    {
      "data": {}
    }

    © 2024 Northflank Ltd. All rights reserved.