AdGuardHome/bamboo-specs/release.yaml

296 lines
8.8 KiB
YAML
Raw Normal View History

---
'version': 2
'plan':
'project-key': 'AGH'
'key': 'AGHBSNAPSPECS'
'name': 'AdGuard Home - Build and publish release'
# Make sure to sync any changes with the branch overrides below.
'variables':
'channel': 'edge'
'dockerFrontend': 'adguard/home-js-builder:2.0'
'dockerGo': 'adguard/go-builder:1.23.1--1'
'stages':
- 'Build frontend':
'manual': false
'final': false
'jobs':
- 'Build frontend'
- 'Make release':
'manual': false
'final': false
'jobs':
- 'Make release'
- 'Make and publish docker':
'manual': false
'final': false
'jobs':
- 'Make and publish docker'
- 'Publish to static storage':
'manual': false
'final': false
'jobs':
- 'Publish to static storage'
- 'Publish to GitHub Releases':
'manual': false
'final': false
'jobs':
- 'Publish to GitHub Releases'
'Build frontend':
'artifacts':
- 'name': 'AdGuardHome frontend'
'pattern': 'build/**'
'shared': true
'required': true
'docker':
'image': '${bamboo.dockerFrontend}'
'volumes':
'${system.YARN_DIR}': '${bamboo.cacheYarn}'
'key': 'BF'
'other':
'clean-working-dir': true
'tasks':
- 'checkout':
'force-clean-build': true
- 'script':
'interpreter': 'SHELL'
'scripts':
- |
#!/bin/sh
set -e -f -u -x
make\
VERBOSE=1\
js-deps js-build
'requirements':
- 'adg-docker': 'true'
'Make release':
'artifact-subscriptions':
- 'artifact': 'AdGuardHome frontend'
# TODO(a.garipov): Use more fine-grained artifact rules.
'artifacts':
- 'name': 'AdGuardHome dists'
'pattern': 'dist/**'
'shared': true
'required': true
'docker':
'image': '${bamboo.dockerGo}'
'volumes':
'${system.GO_CACHE_DIR}': '${bamboo.cacheGo}'
'${system.GO_PKG_CACHE_DIR}': '${bamboo.cacheGoPkg}'
'key': 'MR'
'other':
'clean-working-dir': true
'tasks':
- 'checkout':
'force-clean-build': true
Pull request 2277: AG-29637 Sign Windows Squashed commit of the following: commit d22a4cb262c984241863d8dec1e498d83733ac6f Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 15:19:01 2024 +0300 all: resolve tmp todos commit 4574b050bae921ec9ebed5f90f96f571ca7800cd Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 14:55:44 2024 +0300 bamboo: checkout later commit 3036a46566c78350f1335cdd9f17f28c837b679f Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 14:35:36 2024 +0300 bamboo: list files commit eb675abfc0415907e41e08c8c2bc565162697478 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 14:28:14 2024 +0300 bamboo: work with vcs properly commit 0c34b4dcfd836f0f1c01cbde50cfc505eb46a5ff Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 14:15:06 2024 +0300 bamboo: add repo name var commit 15da8e294f6ee43643787264492facd881bf7713 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 14:06:26 2024 +0300 bamboo: upd api key commit b1d353dbc3b1b29596f15fa2c6fcb1d7d5f57d72 Merge: 3309f0703 cbae07e8e Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Tue Sep 10 19:29:29 2024 +0300 Merge branch 'master' into AG-29637-sign-windows commit 3309f07031331d6f72170a7bb91c35e0a2e50c46 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Tue Sep 10 19:09:44 2024 +0300 all: only sign beta commit f61af53a70b3abd15717f341f07b58091eb4a988 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Tue Sep 10 15:32:31 2024 +0300 all: sign windows
2024-09-11 17:39:54 +01:00
- 'checkout':
'repository': 'bamboo-deploy-publisher'
# The paths are always relative to the working directory.
'path': 'bamboo-deploy-publisher'
'force-clean-build': true
- 'script':
'interpreter': 'SHELL'
'scripts':
- |
#!/bin/sh
set -e -f -u -x
Pull request 2277: AG-29637 Sign Windows Squashed commit of the following: commit d22a4cb262c984241863d8dec1e498d83733ac6f Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 15:19:01 2024 +0300 all: resolve tmp todos commit 4574b050bae921ec9ebed5f90f96f571ca7800cd Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 14:55:44 2024 +0300 bamboo: checkout later commit 3036a46566c78350f1335cdd9f17f28c837b679f Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 14:35:36 2024 +0300 bamboo: list files commit eb675abfc0415907e41e08c8c2bc565162697478 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 14:28:14 2024 +0300 bamboo: work with vcs properly commit 0c34b4dcfd836f0f1c01cbde50cfc505eb46a5ff Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 14:15:06 2024 +0300 bamboo: add repo name var commit 15da8e294f6ee43643787264492facd881bf7713 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 14:06:26 2024 +0300 bamboo: upd api key commit b1d353dbc3b1b29596f15fa2c6fcb1d7d5f57d72 Merge: 3309f0703 cbae07e8e Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Tue Sep 10 19:29:29 2024 +0300 Merge branch 'master' into AG-29637-sign-windows commit 3309f07031331d6f72170a7bb91c35e0a2e50c46 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Tue Sep 10 19:09:44 2024 +0300 all: only sign beta commit f61af53a70b3abd15717f341f07b58091eb4a988 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Tue Sep 10 15:32:31 2024 +0300 all: sign windows
2024-09-11 17:39:54 +01:00
# Explicitly checkout the revision that we need.
git checkout "${bamboo.repository.revision.number}"
# Run the build with the specified channel.
echo "${bamboo.gpgSecretKeyPart1}${bamboo.gpgSecretKeyPart2}"\
| awk '{ gsub(/\\n/, "\n"); print; }'\
| gpg --import --batch --yes
make\
CHANNEL=${bamboo.channel}\
GPG_KEY_PASSPHRASE=${bamboo.gpgPassword}\
Pull request 2277: AG-29637 Sign Windows Squashed commit of the following: commit d22a4cb262c984241863d8dec1e498d83733ac6f Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 15:19:01 2024 +0300 all: resolve tmp todos commit 4574b050bae921ec9ebed5f90f96f571ca7800cd Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 14:55:44 2024 +0300 bamboo: checkout later commit 3036a46566c78350f1335cdd9f17f28c837b679f Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 14:35:36 2024 +0300 bamboo: list files commit eb675abfc0415907e41e08c8c2bc565162697478 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 14:28:14 2024 +0300 bamboo: work with vcs properly commit 0c34b4dcfd836f0f1c01cbde50cfc505eb46a5ff Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 14:15:06 2024 +0300 bamboo: add repo name var commit 15da8e294f6ee43643787264492facd881bf7713 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Sep 11 14:06:26 2024 +0300 bamboo: upd api key commit b1d353dbc3b1b29596f15fa2c6fcb1d7d5f57d72 Merge: 3309f0703 cbae07e8e Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Tue Sep 10 19:29:29 2024 +0300 Merge branch 'master' into AG-29637-sign-windows commit 3309f07031331d6f72170a7bb91c35e0a2e50c46 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Tue Sep 10 19:09:44 2024 +0300 all: only sign beta commit f61af53a70b3abd15717f341f07b58091eb4a988 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Tue Sep 10 15:32:31 2024 +0300 all: sign windows
2024-09-11 17:39:54 +01:00
DEPLOY_SCRIPT_PATH="./bamboo-deploy-publisher/deploy.sh"\
SIGNER_API_KEY="${bamboo.adguardHomeWinSignerSecretApiKey}"\
FRONTEND_PREBUILT=1\
PARALLELISM=1\
VERBOSE=2\
build-release
'requirements':
- 'adg-docker': 'true'
'Make and publish docker':
'key': 'MPD'
'other':
'clean-working-dir': true
'tasks':
- 'checkout':
'force-clean-build': true
- 'script':
'interpreter': 'SHELL'
'scripts':
- |
#!/bin/sh
set -e -f -u -x
# Install Qemu, create builder.
docker version -f '{{ .Server.Experimental }}'
docker buildx rm buildx-builder || :
docker buildx create --name buildx-builder --driver docker-container\
--use
docker buildx inspect --bootstrap
# Login to DockerHub.
docker login -u="${bamboo.dockerHubUsername}"\
-p="${bamboo.dockerHubPassword}"
# Boot the builder.
docker buildx inspect --bootstrap
# Print Docker info.
docker info
# Prepare and push the build.
env\
CHANNEL="${bamboo.channel}"\
COMMIT="${bamboo.repository.revision.number}"\
DIST_DIR='dist'\
DOCKER_IMAGE_NAME='adguard/adguardhome'\
DOCKER_OUTPUT="type=image,name=adguard/adguardhome,push=true"\
VERBOSE='1'\
sh ./scripts/make/build-docker.sh
'environment':
DOCKER_CLI_EXPERIMENTAL=enabled
'final-tasks':
- 'clean'
'requirements':
- 'adg-docker': 'true'
'Publish to static storage':
'key': 'PUB'
'other':
'clean-working-dir': true
'tasks':
- 'clean'
- 'checkout':
'repository': 'bamboo-deploy-publisher'
'path': 'bamboo-deploy-publisher'
'force-clean-build': true
- 'script':
'interpreter': 'SHELL'
'scripts':
- |
#!/bin/sh
set -e -f -u -x
cd ./dist/
CHANNEL="${bamboo.channel}"
export CHANNEL
../bamboo-deploy-publisher/deploy.sh adguard-home-"$CHANNEL"
'final-tasks':
- 'clean'
'requirements':
- 'adg-docker': 'true'
'Publish to GitHub Releases':
'key': 'PTGR'
'other':
'clean-working-dir': true
'tasks':
- 'clean'
- 'checkout':
'repository': 'bamboo-deploy-publisher'
'path': 'bamboo-deploy-publisher'
'force-clean-build': true
- 'script':
'interpreter': 'SHELL'
'scripts':
- |
#!/bin/sh
set -e -f -u -x
channel="${bamboo.channel}"
readonly channel
if [ "$channel" != 'release' ] && [ "${channel}" != 'beta' ]
then
echo "don't publish to GitHub Releases for this channel"
exit 0
fi
cd ./dist/
env\
GITHUB_TOKEN="${bamboo.githubPublicRepoPassword}"\
../bamboo-deploy-publisher/deploy.sh adguard-home-github
'final-tasks':
- 'clean'
'requirements':
- 'adg-docker': 'true'
'triggers':
# Don't use minute values that end with a zero or a five as these are often
# used in CI and so resources during these minutes can be quite busy.
- 'cron': '0 42 13 ? * MON-FRI *'
'branches':
'create': 'manually'
'delete':
'after-deleted-days': 1
'after-inactive-days': 30
'integration':
'push-on-success': false
'merge-from': 'AdGuard Home - Build and publish release'
'link-to-jira': true
'notifications':
- 'events':
- 'plan-completed'
'recipients':
- 'webhook':
'name': 'Build webhook'
'url': 'http://prod.jirahub.service.eu.consul/v1/webhook/bamboo?channel=adguard-qa-dns-builds'
'labels': []
'other':
'concurrent-build-plugin': 'system-default'
'branch-overrides':
# beta-vX.Y branches are the branches into which the commits that are needed
# to release a new patch version are initially cherry-picked.
- '^beta-v[0-9]+\.[0-9]+':
# Build betas on release branches manually.
'triggers': []
# Set the default release channel on the release branch to beta, as we may
# need to build a few of these.
'variables':
'channel': 'beta'
'dockerFrontend': 'adguard/home-js-builder:2.0'
'dockerGo': 'adguard/go-builder:1.23.1--1'
# release-vX.Y.Z branches are the branches from which the actual final
# release is built.
- '^release-v[0-9]+\.[0-9]+\.[0-9]+':
# Disable integration branches for release branches.
'branch-config':
'integration':
'push-on-success': false
'merge-from': 'beta-v0.107'
# Build final releases on release branches manually.
'triggers': []
# Set the default release channel on the final branch to release, as these
# are the ones that actually get released.
'variables':
'channel': 'release'
'dockerFrontend': 'adguard/home-js-builder:2.0'
'dockerGo': 'adguard/go-builder:1.23.1--1'