Pull request 2714: AGDNS-3548-new-client-ci

Squashed commit of the following:

commit 40dcae2331
Author: Ainar Garipov <a.garipov@adguard.com>
Date:   Tue Jul 14 21:17:00 2026 +0300

    bamboo-specs: fix e2e

commit 6fa4a7f5fe
Author: Ainar Garipov <a.garipov@adguard.com>
Date:   Tue Jul 14 21:03:25 2026 +0300

    all: support new client in ci
This commit is contained in:
Ainar Garipov 2026-07-15 08:44:11 +00:00
parent 1dd7b48e68
commit c1f208ef65
3 changed files with 36 additions and 15 deletions

View file

@ -10,6 +10,7 @@
# flaky test suite.
'cacheBuster': '0'
'channel': 'edge'
'clientDir': 'client'
'dockerFrontend': 'adguard/home-js-builder:4.0'
'dockerGo': 'adguard/go-builder:1.26.5--1'
@ -67,8 +68,9 @@
docker info
docker build \
--build-arg "BASE_IMAGE=${bamboo.dockerFrontend}" \
--build-arg "BASE_IMAGE=${bamboo_dockerFrontend}" \
--build-arg "CACHE_BUSTER=${bamboo_cacheBuster}" \
--build-arg "CLIENT_DIR=${bamboo_clientDir}" \
--output '.' \
--progress 'plain' \
--target 'builder-exporter' \
@ -104,7 +106,7 @@
set -e -f -u -x
# Explicitly checkout the revision that we need.
git checkout "${bamboo.repository.revision.number}"
git checkout "${bamboo_repository_revision_number}"
version="$(env CHANNEL=${bamboo_channel} sh ./scripts/make/version.sh)"
readonly version
@ -160,8 +162,8 @@
# Login to DockerHub.
docker login \
-u="${bamboo.dockerHubUsername}" \
-p="${bamboo.dockerHubPassword}"
-u="${bamboo_dockerHubUsername}" \
-p="${bamboo_dockerHubPassword}"
# Boot the builder.
docker buildx inspect --bootstrap
@ -172,8 +174,8 @@
# Prepare and push the build.
env \
CHANNEL="${bamboo.channel}" \
REVISION="${bamboo.repository.revision.number}" \
CHANNEL="${bamboo_channel}" \
REVISION="${bamboo_repository_revision_number}" \
DIST_DIR='dist' \
DOCKER_IMAGE_NAME='adguard/adguardhome' \
DOCKER_PUSH='1' \
@ -202,7 +204,7 @@
cd ./dist/
CHANNEL="${bamboo.channel}"
CHANNEL="${bamboo_channel}"
export CHANNEL
../bamboo-deploy-publisher/deploy.sh adguard-home-"$CHANNEL"
@ -227,7 +229,7 @@
set -e -f -u -x
channel="${bamboo.channel}"
channel="${bamboo_channel}"
readonly channel
if [ "$channel" != 'release' ] && [ "${channel}" != 'beta' ]
@ -240,7 +242,7 @@
cd ./dist/
env\
GITHUB_TOKEN="${bamboo.githubPublicRepoPassword}"\
GITHUB_TOKEN="${bamboo_githubPublicRepoPassword}"\
../bamboo-deploy-publisher/deploy.sh adguard-home-github
'triggers':
@ -279,6 +281,7 @@
# need to build a few of these.
'variables':
'channel': 'beta'
'clientDir': 'client'
'dockerFrontend': 'adguard/home-js-builder:4.0'
'dockerGo': 'adguard/go-builder:1.26.5--1'
# release-vX.Y.Z branches are the branches from which the actual final
@ -295,5 +298,6 @@
# are the ones that actually get released.
'variables':
'channel': 'release'
'clientDir': 'client'
'dockerFrontend': 'adguard/home-js-builder:4.0'
'dockerGo': 'adguard/go-builder:1.26.5--1'

View file

@ -9,6 +9,7 @@
# flaky test suite.
'cacheBuster': '0'
'channel': 'development'
'clientDir': 'client'
'dockerFrontend': 'adguard/home-js-builder:4.0'
'dockerGo': 'adguard/go-builder:1.26.5--1'
@ -58,8 +59,9 @@
docker info
docker build \
--build-arg "BASE_IMAGE=${bamboo.dockerFrontend}" \
--build-arg "BASE_IMAGE=${bamboo_dockerFrontend}" \
--build-arg "CACHE_BUSTER=${bamboo_cacheBuster}" \
--build-arg "CLIENT_DIR=${bamboo_clientDir}" \
--output '.' \
--progress 'plain' \
--target 'tester' \
@ -127,8 +129,9 @@
docker info
docker build \
--build-arg "BASE_IMAGE=${bamboo.dockerFrontend}" \
--build-arg "BASE_IMAGE=${bamboo_dockerFrontend}" \
--build-arg "CACHE_BUSTER=${bamboo_cacheBuster}" \
--build-arg "CLIENT_DIR=${bamboo_clientDir}" \
--output '.' \
--progress 'plain' \
--target 'builder-exporter' \
@ -216,8 +219,9 @@
docker info
docker build \
--build-arg "BASE_IMAGE=${bamboo.dockerFrontend}" \
--build-arg "BASE_IMAGE=${bamboo_dockerFrontend}" \
--build-arg "CACHE_BUSTER=${bamboo_cacheBuster}" \
--build-arg "CLIENT_DIR=${bamboo_clientDir}" \
--output '.' \
--progress 'plain' \
--target 'e2etester' \
@ -254,6 +258,7 @@
# Set the default release channel on the release branch to beta, as we
# may need to build a few of these.
'variables':
'channel': 'candidate'
'clientDir': 'client'
'dockerFrontend': 'adguard/home-js-builder:4.0'
'dockerGo': 'adguard/go-builder:1.26.5--1'
'channel': 'candidate'

View file

@ -29,6 +29,7 @@
# NOTE: Keep in sync with bamboo-specs/bamboo.yaml.
ARG BASE_IMAGE=adguard/home-js-builder:4.0
ARG CLIENT_DIR=client
# The dependencies stage is needed to install packages and tool dependencies.
# This is also where binaries like osslsigncode, which may be required for tests
@ -38,13 +39,15 @@ ARG BASE_IMAGE=adguard/home-js-builder:4.0
FROM "$BASE_IMAGE" AS dependencies
ADD Makefile /app/
ADD scripts /app/scripts
ADD client /app/client
ARG CLIENT_DIR
ADD "${CLIENT_DIR}" "/app/${CLIENT_DIR}"
WORKDIR /app
RUN \
--mount=type=cache,id=npm-root-cache,target=/root/.npm \
<<-'EOF'
set -e -f -u -x
make \
CLIENT_DIR="${CLIENT_DIR}" \
VERBOSE=1 \
js-deps \
;
@ -53,14 +56,16 @@ EOF
# The linter stage is separated from the tester stage to make catching test
# failures easier.
FROM dependencies AS linter
ARG CACHE_BUSTER=0
ADD . /app
ARG CACHE_BUSTER=0
ARG CLIENT_DIR
WORKDIR /app
RUN \
--mount=type=cache,id=npm-root-cache,target=/root/.npm \
<<-'EOF'
set -e -f -u -x
make \
CLIENT_DIR="${CLIENT_DIR}" \
VERBOSE=1 \
js-typecheck \
js-lint \
@ -70,11 +75,13 @@ EOF
# The test stage.
FROM linter AS tester
ARG CACHE_BUSTER=0
ARG CLIENT_DIR
RUN \
--mount=type=cache,id=npm-root-cache,target=/root/.npm \
<<-'EOF'
set -e -f -u -x
make \
CLIENT_DIR="${CLIENT_DIR}" \
VERBOSE=1 \
js-test \
;
@ -83,6 +90,7 @@ EOF
# The e2e test stage.
FROM dependencies AS e2etester
ARG CACHE_BUSTER=0
ARG CLIENT_DIR
ADD . /app
WORKDIR /app
RUN \
@ -90,6 +98,7 @@ RUN \
<<-'EOF'
set -e -f -u -x
make \
CLIENT_DIR="${CLIENT_DIR}" \
CI='true' \
VERBOSE=1 \
js-test-e2e \
@ -99,6 +108,7 @@ EOF
# The builder stage.
FROM dependencies AS builder
ARG CACHE_BUSTER=0
ARG CLIENT_DIR
ADD . /app
WORKDIR /app
RUN \
@ -106,6 +116,7 @@ RUN \
<<-'EOF'
set -e -f -u -x
make \
CLIENT_DIR="${CLIENT_DIR}" \
VERBOSE=1 \
js-build \
;
@ -115,4 +126,5 @@ EOF
# could be published. This stage should only be used in a CI.
FROM scratch AS builder-exporter
ARG CACHE_BUSTER=0
ARG CLIENT_DIR
COPY --from=builder /app/build /build