Merge in DNS/adguard-home from ADG-9679 to master Squashed commit of the following: commit d2a759b4636b7ec931bfba625827c8b91c60c7e7 Merge: a5e7eea169726171f0Author: Igor Lobanov <bniwredyc@gmail.com> Date: Mon Apr 14 16:05:01 2025 +0200 Merge remote-tracking branch 'origin/master' into ADG-9679 commit a5e7eea16e6c29d25290ee79b1918df8af59bb51 Author: Igor Lobanov <bniwredyc@gmail.com> Date: Mon Apr 14 13:56:26 2025 +0200 vitest version bump commit 26620d1923d92b3a6eb9b80a364748f2f6f66030 Author: Igor Lobanov <bniwredyc@gmail.com> Date: Thu Apr 10 15:39:11 2025 +0200 formatting commit dbab03d1316241eaff0fc9c99d58a1933e415d2b Author: Igor Lobanov <bniwredyc@gmail.com> Date: Thu Apr 10 15:37:55 2025 +0200 rollback experiments commit 4427d984177786f7d905915cf8080166b45d7b46 Author: Igor Lobanov <bniwredyc@gmail.com> Date: Thu Apr 10 15:33:28 2025 +0200 checking dir structure commit 2cf7eed247d2869ed285dbee0bf32cf1d8df7e86 Author: Igor Lobanov <bniwredyc@gmail.com> Date: Thu Apr 10 15:21:11 2025 +0200 fixed docker image builder commit 8bd06f412fad9dd09df0e076879bd2cbd2f30d1a Author: Igor Lobanov <bniwredyc@gmail.com> Date: Thu Apr 10 15:18:33 2025 +0200 home-js-builder version bump commit 2a83bfeb322a20ec4278e359b18d0466966ec043 Author: Igor Lobanov <bniwredyc@gmail.com> Date: Thu Apr 10 15:17:38 2025 +0200 try to remove installation dependencies for e2e test (build is already available) commit 163e4581e83152f99058b798484468009e8e88b0 Author: Igor Lobanov <bniwredyc@gmail.com> Date: Thu Apr 10 13:52:27 2025 +0200 Revert "changed nslookup to dig in e2e tests" This reverts commit ecb68200ea28e295f504338cc59c711b5540022b. commit 15f7c5e2c77e230da77a0f9de0bd9cce8451da95 Author: Igor Lobanov <bniwredyc@gmail.com> Date: Thu Apr 10 13:45:40 2025 +0200 js-home-builder version bump commit ecb68200ea28e295f504338cc59c711b5540022b Author: Igor Lobanov <bniwredyc@gmail.com> Date: Wed Apr 9 15:07:39 2025 +0200 changed nslookup to dig in e2e tests commit 77c94a60be8839f3e0ad9d02e7dbb2ebd802d3d6 Author: Eugene Miroshkin <e.miroshkin@adguard.com> Date: Wed Apr 9 11:09:15 2025 +0300 revert timeouts commit 9dfebc8bcaf2cd3258b39fcbd0f67ab51c2eb46d Merge: 912f4cb7b1cc6c00e4Author: Eugene Miroshkin <e.miroshkin@adguard.com> Date: Wed Apr 9 11:02:19 2025 +0300 merge master commit 912f4cb7b71f02866244fe447ca0e7fbd2a015bb Author: Eugene Miroshkin <e.miroshkin@adguard.com> Date: Wed Apr 9 10:48:59 2025 +0300 cleanup code commit 9da200ebca5b001f4952f33d819d90c1938920ee Author: Eugene Miroshkin <e.miroshkin@adguard.com> Date: Thu Apr 3 17:39:20 2025 +0300 update tests commit 794e0bd0a92a41c4d3827b716eeab584a25bd3ed Author: Eugene Miroshkin <e.miroshkin@adguard.com> Date: Thu Mar 13 18:15:58 2025 +0300 cleanup commit 9a523b4e255dd24c0f640bc279924ed2c13509a9 Author: Eugene Miroshkin <e.miroshkin@adguard.com> Date: Thu Mar 13 18:04:34 2025 +0300 ADG-9679 add playwright test from python
299 lines
8.8 KiB
YAML
299 lines
8.8 KiB
YAML
---
|
|
'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:3.1'
|
|
'dockerGo': 'adguard/go-builder:1.24.2--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.NPM_DIR}': '${bamboo.cacheNpm}'
|
|
'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
|
|
- '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
|
|
|
|
# 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}\
|
|
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
|
|
docker buildx version
|
|
|
|
# Prepare and push the build.
|
|
env \
|
|
CHANNEL="${bamboo.channel}" \
|
|
REVISION="${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:3.1'
|
|
'dockerGo': 'adguard/go-builder:1.24.2--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:3.1'
|
|
'dockerGo': 'adguard/go-builder:1.24.2--1'
|