221 lines
6.1 KiB
YAML
221 lines
6.1 KiB
YAML
---
|
|
'version': 2
|
|
'plan':
|
|
'project-key': 'AGH'
|
|
'key': 'AHBRTSPECS'
|
|
'name': 'AdGuard Home - Build and run tests'
|
|
'variables':
|
|
'dockerFrontend': 'adguard/home-js-builder:2.0'
|
|
'dockerGo': 'adguard/go-builder:1.23.1--1'
|
|
'channel': 'development'
|
|
|
|
'stages':
|
|
- 'Tests':
|
|
'manual': false
|
|
'final': false
|
|
'jobs':
|
|
- 'Test frontend'
|
|
- 'Test backend'
|
|
|
|
- 'Frontend':
|
|
manual: false
|
|
final: false
|
|
jobs:
|
|
- 'Build frontend'
|
|
|
|
- 'Artifact':
|
|
manual: false
|
|
final: false
|
|
jobs:
|
|
- 'Artifact'
|
|
|
|
'Test frontend':
|
|
'docker':
|
|
'image': '${bamboo.dockerFrontend}'
|
|
'volumes':
|
|
'${system.YARN_DIR}': '${bamboo.cacheYarn}'
|
|
'key': 'JSTEST'
|
|
'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-lint js-test
|
|
'final-tasks':
|
|
- 'clean'
|
|
'requirements':
|
|
- 'adg-docker': 'true'
|
|
|
|
# TODO(e.burkov): Add the linting stage for markdown docs and shell scripts.
|
|
'Test backend':
|
|
'docker':
|
|
'image': '${bamboo.dockerGo}'
|
|
'volumes':
|
|
'${system.GO_CACHE_DIR}': '${bamboo.cacheGo}'
|
|
'${system.GO_PKG_CACHE_DIR}': '${bamboo.cacheGoPkg}'
|
|
'key': 'GOTEST'
|
|
'other':
|
|
'clean-working-dir': true
|
|
'tasks':
|
|
- 'checkout':
|
|
'force-clean-build': true
|
|
- 'script':
|
|
'interpreter': 'SHELL'
|
|
'scripts':
|
|
- |
|
|
#!/bin/sh
|
|
|
|
set -e -f -u -x
|
|
|
|
make\
|
|
GOMAXPROCS=1\
|
|
VERBOSE=1\
|
|
go-deps go-tools go-lint
|
|
|
|
make\
|
|
VERBOSE=1\
|
|
go-test
|
|
'final-tasks':
|
|
- 'clean'
|
|
'requirements':
|
|
- 'adg-docker': 'true'
|
|
|
|
'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'
|
|
|
|
'Artifact':
|
|
'artifact-subscriptions':
|
|
- 'artifact': 'AdGuardHome frontend'
|
|
'artifacts':
|
|
- 'name': 'AdGuardHome_windows_amd64'
|
|
'pattern': 'dist/AdGuardHome_windows_amd64.zip'
|
|
'shared': true
|
|
'required': true
|
|
- 'name': 'AdGuardHome_darwin_amd64'
|
|
'pattern': 'dist/AdGuardHome_darwin_amd64.zip'
|
|
'shared': true
|
|
'required': true
|
|
- 'name': 'AdGuardHome_linux_amd64'
|
|
'pattern': 'dist/AdGuardHome_linux_amd64.tar.gz'
|
|
'shared': true
|
|
'required': true
|
|
'docker':
|
|
'image': '${bamboo.dockerGo}'
|
|
'volumes':
|
|
'${system.GO_CACHE_DIR}': '${bamboo.cacheGo}'
|
|
'${system.GO_PKG_CACHE_DIR}': '${bamboo.cacheGoPkg}'
|
|
'key': 'ART'
|
|
'other':
|
|
'clean-working-dir': true
|
|
'tasks':
|
|
# TODO(e.burkov): !! Remove after test.
|
|
- 'checkout':
|
|
'repository': 'bamboo-deploy-publisher'
|
|
# The paths are always relative to the working directory.
|
|
'path': 'bamboo-deploy-publisher'
|
|
'force-clean-build': true
|
|
- 'checkout':
|
|
'force-clean-build': true
|
|
- 'script':
|
|
'interpreter': 'SHELL'
|
|
'scripts':
|
|
- |-
|
|
#!/bin/sh
|
|
|
|
set -e -f -u -x
|
|
|
|
# Follow the working repository path.
|
|
cd "${bamboo.name}"
|
|
|
|
# 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\
|
|
ARCH="amd64"\
|
|
CHANNEL=${bamboo.channel}\
|
|
GPG_KEY_PASSPHRASE=${bamboo.gpgPassword}\
|
|
DEPLOY_SCRIPT_PATH="../bamboo-deploy-publisher/deploy.sh"\
|
|
SIGNER_API_KEY="${bamboo.adguardHomeWinSignerSecretApiKey}"\
|
|
FRONTEND_PREBUILT=1\
|
|
OS="windows darwin linux"\
|
|
PARALLELISM=1\
|
|
SIGN=1\
|
|
VERBOSE=2\
|
|
build-release
|
|
'requirements':
|
|
- 'adg-docker': 'true'
|
|
|
|
'branches':
|
|
'create': 'for-pull-request'
|
|
'delete':
|
|
'after-deleted-days': 1
|
|
'after-inactive-days': 5
|
|
'integration':
|
|
'push-on-success': false
|
|
'merge-from': 'AdGuard Home - Build and run tests'
|
|
'link-to-jira': true
|
|
|
|
'notifications':
|
|
- 'events':
|
|
- 'plan-status-changed'
|
|
'recipients':
|
|
- 'webhook':
|
|
'name': 'Build webhook'
|
|
'url': 'http://prod.jirahub.service.eu.consul/v1/webhook/bamboo'
|
|
|
|
'labels': []
|
|
'other':
|
|
'concurrent-build-plugin': 'system-default'
|
|
|
|
'branch-overrides':
|
|
# rc-vX.Y.Z branches are the release candidate branches. They are created
|
|
# from the release branch and are used to build the release candidate
|
|
# images.
|
|
- '^rc-v[0-9]+\.[0-9]+\.[0-9]+':
|
|
# Set the default release channel on the release branch to beta, as we
|
|
# may need to build a few of these.
|
|
'variables':
|
|
'dockerFrontend': 'adguard/home-js-builder:2.0'
|
|
'dockerGo': 'adguard/go-builder:1.23.1--1'
|
|
'channel': 'candidate'
|