Files
threshold/.circleci/config/@build-release.yml
T

490 lines
19 KiB
YAML

---
# ***
# WARNING: Do not EDIT or MERGE this file, it is generated by packagespec.
# ***
version: 2.1
executors:
builder:
docker:
- image: circleci/buildpack-deps
environment:
PRODUCT_REVISION: ""
AUTO_INSTALL_TOOLS: 'YES'
BUILDKIT_PROGRESS: plain
shell: /usr/bin/env bash -euo pipefail -c
builder-machine:
machine:
image: ubuntu-1604:202007-01
resource_class: xlarge
environment:
PRODUCT_REVISION: ""
AUTO_INSTALL_TOOLS: 'YES'
BUILDKIT_PROGRESS: plain
shell: /usr/bin/env bash -euo pipefail -c
workflows:
version: 2
build-standalone:
jobs:
- build-common-layers
- darwin_amd64_package: { requires: [ build-common-layers ] }
- linux_amd64_package: { requires: [ build-common-layers ] }
- windows_amd64_package: { requires: [ build-common-layers ] }
- bundle-releases:
requires:
- darwin_amd64_package
- linux_amd64_package
- windows_amd64_package
jobs:
build-common-layers:
executor: builder-machine
steps:
- add_ssh_keys:
fingerprints:
# hashicorp-ci github user.
- "c6:96:98:82:dc:04:6c:39:dd:ac:83:05:e3:15:1c:98"
- checkout
- write-build-layer-cache-keys
- restore_cache:
name: Restore build image cache
keys:
- cache006-copy-source_dde4_{{checksum ".buildcache/cache-keys/copy-source-dde49480ad145a6d7ce0f55c0d23e6f50c04d8d3"}}
- cache006-go-modules_694e_{{checksum ".buildcache/cache-keys/go-modules-694e8500194e3b187b35bd9a40229f3bd215710e"}}
- cache006-ui_5f82_{{checksum ".buildcache/cache-keys/ui-5f82d1f0cbf979ee051aa1ba0f7105483fa6947d"}}
- cache006-base_aac1_{{checksum ".buildcache/cache-keys/base-aac1d959b4b3af1495941602b5e51fb6181baded"}}
- run:
name: Finish early if loaded exact match from cache.
command: |
if [ -f .buildcache/archives/03-copy-source-dde49480ad145a6d7ce0f55c0d23e6f50c04d8d3.tar.gz ]; then
echo "Exact match found in cache, skipping build."
circleci-agent step halt
else
echo "No exact match found, proceeding with build."
fi
- run:
name: Load whatever builder cache we have (if any) into the Docker daemon
no_output_timeout: 30m
command: |
LAYER_SPEC_ID=03-copy-source-dde49480ad145a6d7ce0f55c0d23e6f50c04d8d3 make -C packages*.lock load-builder-cache
- run:
name: Build base layer
command: |
KEYFILE="$HOME/.ssh/id_rsa_c6969882dc046c39ddac8305e3151c98"
eval "$(ssh-agent -s)"
if [ -f "$KEYFILE" ]; then
ssh-add "$KEYFILE"
else
echo "==> INFO: SSH key for github.com not found"
echo " Attempts to access private repositories from within"
echo " the build will fail, e.g. for private go modules, or"
echo " attempts to directly clone private repositories."
fi
make -f packages*.lock/layer.mk 00-base-aac1d959b4b3af1495941602b5e51fb6181baded-image
- run:
name: Build ui layer
command: |
KEYFILE="$HOME/.ssh/id_rsa_c6969882dc046c39ddac8305e3151c98"
eval "$(ssh-agent -s)"
if [ -f "$KEYFILE" ]; then
ssh-add "$KEYFILE"
else
echo "==> INFO: SSH key for github.com not found"
echo " Attempts to access private repositories from within"
echo " the build will fail, e.g. for private go modules, or"
echo " attempts to directly clone private repositories."
fi
make -f packages*.lock/layer.mk 01-ui-5f82d1f0cbf979ee051aa1ba0f7105483fa6947d-image
- run:
name: Build go-modules layer
command: |
KEYFILE="$HOME/.ssh/id_rsa_c6969882dc046c39ddac8305e3151c98"
eval "$(ssh-agent -s)"
if [ -f "$KEYFILE" ]; then
ssh-add "$KEYFILE"
else
echo "==> INFO: SSH key for github.com not found"
echo " Attempts to access private repositories from within"
echo " the build will fail, e.g. for private go modules, or"
echo " attempts to directly clone private repositories."
fi
make -f packages*.lock/layer.mk 02-go-modules-694e8500194e3b187b35bd9a40229f3bd215710e-image
- run:
name: Build copy-source layer
command: |
KEYFILE="$HOME/.ssh/id_rsa_c6969882dc046c39ddac8305e3151c98"
eval "$(ssh-agent -s)"
if [ -f "$KEYFILE" ]; then
ssh-add "$KEYFILE"
else
echo "==> INFO: SSH key for github.com not found"
echo " Attempts to access private repositories from within"
echo " the build will fail, e.g. for private go modules, or"
echo " attempts to directly clone private repositories."
fi
make -f packages*.lock/layer.mk 03-copy-source-dde49480ad145a6d7ce0f55c0d23e6f50c04d8d3-image
- run:
name: Export builder image
command: make -f packages*.lock/layer.mk 03-copy-source-dde49480ad145a6d7ce0f55c0d23e6f50c04d8d3-save
- save_cache:
name: Save layer copy-source to cache.
key: cache006-copy-source_dde4_{{checksum ".buildcache/cache-keys/copy-source-dde49480ad145a6d7ce0f55c0d23e6f50c04d8d3"}}
paths:
- .buildcache/archives/03-copy-source-dde49480ad145a6d7ce0f55c0d23e6f50c04d8d3.tar.gz
- run:
name: Prepare layer go-modules for caching
command: mv .buildcache/archives/03-copy-source-dde49480ad145a6d7ce0f55c0d23e6f50c04d8d3.tar.gz .buildcache/archives/02-go-modules-694e8500194e3b187b35bd9a40229f3bd215710e.tar.gz
- save_cache:
name: Save layer go-modules to cache.
key: cache006-go-modules_694e_{{checksum ".buildcache/cache-keys/go-modules-694e8500194e3b187b35bd9a40229f3bd215710e"}}
paths:
- .buildcache/archives/02-go-modules-694e8500194e3b187b35bd9a40229f3bd215710e.tar.gz
- run:
name: Prepare layer ui for caching
command: mv .buildcache/archives/02-go-modules-694e8500194e3b187b35bd9a40229f3bd215710e.tar.gz .buildcache/archives/01-ui-5f82d1f0cbf979ee051aa1ba0f7105483fa6947d.tar.gz
- save_cache:
name: Save layer ui to cache.
key: cache006-ui_5f82_{{checksum ".buildcache/cache-keys/ui-5f82d1f0cbf979ee051aa1ba0f7105483fa6947d"}}
paths:
- .buildcache/archives/01-ui-5f82d1f0cbf979ee051aa1ba0f7105483fa6947d.tar.gz
- run:
name: Prepare layer base for caching
command: mv .buildcache/archives/01-ui-5f82d1f0cbf979ee051aa1ba0f7105483fa6947d.tar.gz .buildcache/archives/00-base-aac1d959b4b3af1495941602b5e51fb6181baded.tar.gz
- save_cache:
name: Save layer base to cache.
key: cache006-base_aac1_{{checksum ".buildcache/cache-keys/base-aac1d959b4b3af1495941602b5e51fb6181baded"}}
paths:
- .buildcache/archives/00-base-aac1d959b4b3af1495941602b5e51fb6181baded.tar.gz
darwin_amd64_package:
executor: builder
environment:
- PACKAGE_SPEC_ID: 3f81e804b31cb70e63a9c834931d9a0a4c2e2bb3
steps:
- setup_remote_docker:
version: 19.03.12
- add_ssh_keys:
fingerprints:
# hashicorp-ci github user.
- "c6:96:98:82:dc:04:6c:39:dd:ac:83:05:e3:15:1c:98"
- checkout
# Restore the package cache first, we might not need to rebuild.
- write-package-cache-key
- restore_cache:
name: Restore package cache
key: 'cache006-package-3f81e804b31cb70e63a9c834931d9a0a4c2e2bb3-{{checksum ".buildcache/cache-keys/package-3f81e804b31cb70e63a9c834931d9a0a4c2e2bb3"}}'
- run:
name: Check the cache status.
command: |
if ! { PKG=$(find .buildcache/packages/store -maxdepth 1 -mindepth 1 -name '*.zip' 2> /dev/null) && [ -n "$PKG" ]; }; then
echo "No package found, continuing with build."
exit 0
fi
echo "Package already cached, skipping build."
circleci-agent step halt
# We need to rebuild, so load the builder cache.
- write-build-layer-cache-keys
- restore_cache:
name: Restore build layer cache
keys:
- cache006-copy-source_dde4_{{checksum ".buildcache/cache-keys/copy-source-dde49480ad145a6d7ce0f55c0d23e6f50c04d8d3"}}
- cache006-go-modules_694e_{{checksum ".buildcache/cache-keys/go-modules-694e8500194e3b187b35bd9a40229f3bd215710e"}}
- cache006-ui_5f82_{{checksum ".buildcache/cache-keys/ui-5f82d1f0cbf979ee051aa1ba0f7105483fa6947d"}}
- cache006-base_aac1_{{checksum ".buildcache/cache-keys/base-aac1d959b4b3af1495941602b5e51fb6181baded"}}
- run:
name: Load whatever builder cache we have (if any) into the Docker daemon
no_output_timeout: 30m
command: |
make -C packages*.lock load-builder-cache
- run:
name: Compile Package
command: |
KEYFILE="$HOME/.ssh/id_rsa_c6969882dc046c39ddac8305e3151c98"
eval "$(ssh-agent -s)"
if [ -f "$KEYFILE" ]; then
ssh-add "$KEYFILE"
else
echo "==> INFO: SSH key for github.com not found"
echo " Attempts to access private repositories from within"
echo " the build will fail, e.g. for private go modules, or"
echo " attempts to directly clone private repositories."
fi
make -C packages*.lock package
- run:
name: List packages
command: ls -lahR .buildcache/packages
- save_cache:
name: Saving package cache
key: 'cache006-package-3f81e804b31cb70e63a9c834931d9a0a4c2e2bb3-{{checksum ".buildcache/cache-keys/package-3f81e804b31cb70e63a9c834931d9a0a4c2e2bb3"}}'
paths:
- .buildcache/packages/store
# Save builder image cache if necessary.
# The range should only iterate over a single layer.
linux_amd64_package:
executor: builder
environment:
- PACKAGE_SPEC_ID: 26ad460ac09efc9c56bdbb7a962ff92616c06c51
steps:
- setup_remote_docker:
version: 19.03.12
- add_ssh_keys:
fingerprints:
# hashicorp-ci github user.
- "c6:96:98:82:dc:04:6c:39:dd:ac:83:05:e3:15:1c:98"
- checkout
# Restore the package cache first, we might not need to rebuild.
- write-package-cache-key
- restore_cache:
name: Restore package cache
key: 'cache006-package-26ad460ac09efc9c56bdbb7a962ff92616c06c51-{{checksum ".buildcache/cache-keys/package-26ad460ac09efc9c56bdbb7a962ff92616c06c51"}}'
- run:
name: Check the cache status.
command: |
if ! { PKG=$(find .buildcache/packages/store -maxdepth 1 -mindepth 1 -name '*.zip' 2> /dev/null) && [ -n "$PKG" ]; }; then
echo "No package found, continuing with build."
exit 0
fi
echo "Package already cached, skipping build."
circleci-agent step halt
# We need to rebuild, so load the builder cache.
- write-build-layer-cache-keys
- restore_cache:
name: Restore build layer cache
keys:
- cache006-copy-source_dde4_{{checksum ".buildcache/cache-keys/copy-source-dde49480ad145a6d7ce0f55c0d23e6f50c04d8d3"}}
- cache006-go-modules_694e_{{checksum ".buildcache/cache-keys/go-modules-694e8500194e3b187b35bd9a40229f3bd215710e"}}
- cache006-ui_5f82_{{checksum ".buildcache/cache-keys/ui-5f82d1f0cbf979ee051aa1ba0f7105483fa6947d"}}
- cache006-base_aac1_{{checksum ".buildcache/cache-keys/base-aac1d959b4b3af1495941602b5e51fb6181baded"}}
- run:
name: Load whatever builder cache we have (if any) into the Docker daemon
no_output_timeout: 30m
command: |
make -C packages*.lock load-builder-cache
- run:
name: Compile Package
command: |
KEYFILE="$HOME/.ssh/id_rsa_c6969882dc046c39ddac8305e3151c98"
eval "$(ssh-agent -s)"
if [ -f "$KEYFILE" ]; then
ssh-add "$KEYFILE"
else
echo "==> INFO: SSH key for github.com not found"
echo " Attempts to access private repositories from within"
echo " the build will fail, e.g. for private go modules, or"
echo " attempts to directly clone private repositories."
fi
make -C packages*.lock package
- run:
name: List packages
command: ls -lahR .buildcache/packages
- save_cache:
name: Saving package cache
key: 'cache006-package-26ad460ac09efc9c56bdbb7a962ff92616c06c51-{{checksum ".buildcache/cache-keys/package-26ad460ac09efc9c56bdbb7a962ff92616c06c51"}}'
paths:
- .buildcache/packages/store
# Save builder image cache if necessary.
# The range should only iterate over a single layer.
windows_amd64_package:
executor: builder
environment:
- PACKAGE_SPEC_ID: 6b5bf7794d67cf76b1b4772807af52deb1f6a808
steps:
- setup_remote_docker:
version: 19.03.12
- add_ssh_keys:
fingerprints:
# hashicorp-ci github user.
- "c6:96:98:82:dc:04:6c:39:dd:ac:83:05:e3:15:1c:98"
- checkout
# Restore the package cache first, we might not need to rebuild.
- write-package-cache-key
- restore_cache:
name: Restore package cache
key: 'cache006-package-6b5bf7794d67cf76b1b4772807af52deb1f6a808-{{checksum ".buildcache/cache-keys/package-6b5bf7794d67cf76b1b4772807af52deb1f6a808"}}'
- run:
name: Check the cache status.
command: |
if ! { PKG=$(find .buildcache/packages/store -maxdepth 1 -mindepth 1 -name '*.zip' 2> /dev/null) && [ -n "$PKG" ]; }; then
echo "No package found, continuing with build."
exit 0
fi
echo "Package already cached, skipping build."
circleci-agent step halt
# We need to rebuild, so load the builder cache.
- write-build-layer-cache-keys
- restore_cache:
name: Restore build layer cache
keys:
- cache006-copy-source_dde4_{{checksum ".buildcache/cache-keys/copy-source-dde49480ad145a6d7ce0f55c0d23e6f50c04d8d3"}}
- cache006-go-modules_694e_{{checksum ".buildcache/cache-keys/go-modules-694e8500194e3b187b35bd9a40229f3bd215710e"}}
- cache006-ui_5f82_{{checksum ".buildcache/cache-keys/ui-5f82d1f0cbf979ee051aa1ba0f7105483fa6947d"}}
- cache006-base_aac1_{{checksum ".buildcache/cache-keys/base-aac1d959b4b3af1495941602b5e51fb6181baded"}}
- run:
name: Load whatever builder cache we have (if any) into the Docker daemon
no_output_timeout: 30m
command: |
make -C packages*.lock load-builder-cache
- run:
name: Compile Package
command: |
KEYFILE="$HOME/.ssh/id_rsa_c6969882dc046c39ddac8305e3151c98"
eval "$(ssh-agent -s)"
if [ -f "$KEYFILE" ]; then
ssh-add "$KEYFILE"
else
echo "==> INFO: SSH key for github.com not found"
echo " Attempts to access private repositories from within"
echo " the build will fail, e.g. for private go modules, or"
echo " attempts to directly clone private repositories."
fi
make -C packages*.lock package
- run:
name: List packages
command: ls -lahR .buildcache/packages
- save_cache:
name: Saving package cache
key: 'cache006-package-6b5bf7794d67cf76b1b4772807af52deb1f6a808-{{checksum ".buildcache/cache-keys/package-6b5bf7794d67cf76b1b4772807af52deb1f6a808"}}'
paths:
- .buildcache/packages/store
# Save builder image cache if necessary.
# The range should only iterate over a single layer.
bundle-releases:
executor: builder
steps:
- checkout
- write-all-package-cache-keys
- load-darwin_amd64_package
- run:
environment:
PACKAGE_SPEC_ID: 3f81e804b31cb70e63a9c834931d9a0a4c2e2bb3
name: Write package metadata for darwin_amd64_package
command: |
make package-meta
- load-linux_amd64_package
- run:
environment:
PACKAGE_SPEC_ID: 26ad460ac09efc9c56bdbb7a962ff92616c06c51
name: Write package metadata for linux_amd64_package
command: |
make package-meta
- load-windows_amd64_package
- run:
environment:
PACKAGE_SPEC_ID: 6b5bf7794d67cf76b1b4772807af52deb1f6a808
name: Write package metadata for windows_amd64_package
command: |
make package-meta
- run:
name: Write package aliases
command:
make aliases
- run:
name: List Build Cache
command: ls -lahR .buildcache
# Give the lockfile a name store_artifacts can work with.
- run: cp packages*.lock/pkgs.yml lockfile-standalone.yml
# Surface the lock file as an artifact.
- store_artifacts:
path: lockfile-standalone.yml
destination: lockfile-standalone.yml
# Surface the package store directory as an artifact.
# This makes each zipped package separately downloadable.
- store_artifacts:
path: .buildcache/packages
destination: packages-standalone
# Surface a tarball of the whole package store plus lockfile as an artifact.
- run: tar -czf packages-standalone.tar.gz .buildcache/packages lockfile-standalone.yml
- store_artifacts:
path: packages-standalone.tar.gz
destination: packages-standalone.tar.gz
# Surface a tarball of just the metadata files.
- run: tar -czf meta-standalone.tar.gz .buildcache/packages/store/*.json lockfile-standalone.yml
- store_artifacts:
path: meta-standalone.tar.gz
destination: meta-standalone.tar.gz
commands:
load-darwin_amd64_package:
steps:
- restore_cache:
key: 'cache006-package-3f81e804b31cb70e63a9c834931d9a0a4c2e2bb3-{{checksum ".buildcache/cache-keys/package-3f81e804b31cb70e63a9c834931d9a0a4c2e2bb3"}}'
load-linux_amd64_package:
steps:
- restore_cache:
key: 'cache006-package-26ad460ac09efc9c56bdbb7a962ff92616c06c51-{{checksum ".buildcache/cache-keys/package-26ad460ac09efc9c56bdbb7a962ff92616c06c51"}}'
load-windows_amd64_package:
steps:
- restore_cache:
key: 'cache006-package-6b5bf7794d67cf76b1b4772807af52deb1f6a808-{{checksum ".buildcache/cache-keys/package-6b5bf7794d67cf76b1b4772807af52deb1f6a808"}}'
write-build-layer-cache-keys:
steps:
- run:
name: Write builder layer cache keys
command: make -C packages*.lock write-builder-cache-keys
write-package-cache-key:
steps:
- run:
name: Write package cache key
command: make -C packages*.lock write-package-cache-key
write-all-package-cache-keys:
steps:
- run:
name: Write all package cache keys
command: make -C packages*.lock write-all-package-cache-keys