From 54f77c0101ed7d412bfe00990eb925fcd014eaeb Mon Sep 17 00:00:00 2001 From: Ainar Garipov Date: Wed, 20 Mar 2024 19:03:46 +0300 Subject: [PATCH] Pull request 2179: upd-docker Squashed commit of the following: commit 17e145c87b1fabde75d6dbe96570a1720a2e1306 Author: Ainar Garipov Date: Wed Mar 20 18:49:18 2024 +0300 bamboo-specs: upd builder img commit d6399a084b0e6b26cf27acc617838fdf7ea94e00 Author: Ainar Garipov Date: Wed Mar 20 18:35:01 2024 +0300 bamboo-specs: fix frontend build commit 9f4cbf5fd8f085e634ff021ab5320454856b3425 Author: Ainar Garipov Date: Wed Mar 20 18:21:50 2024 +0300 bamboo-specs: fix yaml commit a26d2ab063c23873e132e659ae4ba1035325ad3a Author: Ainar Garipov Date: Wed Mar 20 18:18:57 2024 +0300 all: use new docker imgs --- .github/workflows/build.yml | 4 +- CHANGELOG.md | 8 ++- Makefile | 15 ++--- bamboo-specs/release.yaml | 50 ++++++---------- bamboo-specs/snapcraft.yaml | 6 +- bamboo-specs/test.yaml | 115 ++++++++++++++++++++++++++++-------- 6 files changed, 124 insertions(+), 74 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f140346b..2e4c0d97 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -53,9 +53,9 @@ 'path': '${{ steps.npm-cache.outputs.dir }}' 'key': "${{ runner.os }}-node-${{ hashFiles('client/package-lock.json') }}" 'restore-keys': '${{ runner.os }}-node-' - - 'name': 'Run make ci' + - 'name': 'Run tests' 'shell': 'bash' - 'run': 'make VERBOSE=1 ci' + 'run': 'make VERBOSE=1 deps test go-bench go-fuzz' - 'name': 'Upload coverage' 'uses': 'codecov/codecov-action@v1' 'if': "success() && matrix.os == 'ubuntu-latest'" diff --git a/CHANGELOG.md b/CHANGELOG.md index a5967b8b..028eae8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,10 @@ See also the [v0.107.47 GitHub milestone][ms-v0.107.47]. NOTE: Add new changes BELOW THIS COMMENT. --> +### Deprecated + +- Node.JS 16. Future versions will require at least Node.JS 18 to build. + @@ -42,11 +46,11 @@ See also the [v0.107.46 GitHub milestone][ms-v0.107.46]. ### Changed -- Private RDNS resolution (`dns.use_private_ptr_resolvers` in YAML +- Private rDNS resolution (`dns.use_private_ptr_resolvers` in YAML configuration) now requires a valid "Private reverse DNS servers", when enabled ([#6820]). - **NOTE:** Disabling private RDNS resolution behaves effectively the same as if + **NOTE:** Disabling private rDNS resolution behaves effectively the same as if no private reverse DNS servers provided by user and by the OS. ### Fixed diff --git a/Makefile b/Makefile index 8fccfc35..75a68b7b 100644 --- a/Makefile +++ b/Makefile @@ -82,8 +82,6 @@ build: deps quick-build quick-build: js-build go-build -ci: deps test go-bench go-fuzz - deps: js-deps go-deps lint: js-lint go-lint test: js-test go-test @@ -98,15 +96,10 @@ build-release: $(BUILD_RELEASE_DEPS_$(FRONTEND_PREBUILT)) clean: ; $(ENV) "$(SHELL)" ./scripts/make/clean.sh init: ; git config core.hooksPath ./scripts/hooks -js-build: - $(NPM) $(NPM_FLAGS) run build-prod -js-deps: - $(NPM) $(NPM_INSTALL_FLAGS) ci - -# TODO(a.garipov): Remove the legacy client tasks support once the new -# client is done and the old one is removed. -js-lint: ; $(NPM) $(NPM_FLAGS) run lint -js-test: ; $(NPM) $(NPM_FLAGS) run test +js-build: ; $(NPM) $(NPM_FLAGS) run build-prod +js-deps: ; $(NPM) $(NPM_INSTALL_FLAGS) ci +js-lint: ; $(NPM) $(NPM_FLAGS) run lint +js-test: ; $(NPM) $(NPM_FLAGS) run test go-bench: ; $(ENV) "$(SHELL)" ./scripts/make/go-bench.sh go-build: ; $(ENV) "$(SHELL)" ./scripts/make/go-build.sh diff --git a/bamboo-specs/release.yaml b/bamboo-specs/release.yaml index 56746e82..4796ab45 100644 --- a/bamboo-specs/release.yaml +++ b/bamboo-specs/release.yaml @@ -7,8 +7,7 @@ # Make sure to sync any changes with the branch overrides below. 'variables': 'channel': 'edge' - # TODO(a.garipov): Split away the frontend image. - 'dockerFrontend': 'adguard/golang-ubuntu:9.0' + 'dockerFrontend': 'adguard/home-js-builder:1.1' 'dockerGo': 'adguard/go-builder:1.21.8--1' 'stages': @@ -42,9 +41,12 @@ 'jobs': - 'Publish to GitHub Releases' -# TODO(e.burkov): In jobs below find out why the explicit checkout is -# performed. 'Build frontend': + 'artifacts': + - 'name': 'AdGuardHome frontend' + 'pattern': 'build/**' + 'shared': true + 'required': true 'docker': 'image': '${bamboo.dockerFrontend}' 'volumes': @@ -63,19 +65,21 @@ set -e -f -u -x - # Explicitly checkout the revision that we need. - git checkout "${bamboo.repository.revision.number}" - - make js-deps js-build - 'artifacts': - - 'name': 'AdGuardHome frontend' - 'pattern': 'build/**' - 'shared': true - 'required': true + 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': @@ -95,9 +99,6 @@ 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; }'\ @@ -110,12 +111,6 @@ PARALLELISM=1\ VERBOSE=2\ build-release - # TODO(a.garipov): Use more fine-grained artifact rules. - 'artifacts': - - 'name': 'AdGuardHome dists' - 'pattern': 'dist/**' - 'shared': true - 'required': true 'requirements': - 'adg-docker': 'true' @@ -134,13 +129,6 @@ set -e -f -u -x - COMMIT="${bamboo.repository.revision.number}" - export COMMIT - readonly COMMIT - - # Explicitly checkout the revision that we need. - git checkout "$COMMIT" - # Install Qemu, create builder. docker version -f '{{ .Server.Experimental }}' docker buildx rm buildx-builder || : @@ -276,7 +264,7 @@ # need to build a few of these. 'variables': 'channel': 'beta' - 'dockerFrontend': 'adguard/golang-ubuntu:9.0' + 'dockerFrontend': 'adguard/home-js-builder:1.1' 'dockerGo': 'adguard/go-builder:1.21.8--1' # release-vX.Y.Z branches are the branches from which the actual final # release is built. @@ -292,5 +280,5 @@ # are the ones that actually get released. 'variables': 'channel': 'release' - 'dockerFrontend': 'adguard/golang-ubuntu:9.0' + 'dockerFrontend': 'adguard/home-js-builder:1.1' 'dockerGo': 'adguard/go-builder:1.21.8--1' diff --git a/bamboo-specs/snapcraft.yaml b/bamboo-specs/snapcraft.yaml index d8fa272e..14e9d3df 100644 --- a/bamboo-specs/snapcraft.yaml +++ b/bamboo-specs/snapcraft.yaml @@ -10,7 +10,7 @@ # Make sure to sync any changes with the branch overrides below. 'variables': 'channel': 'edge' - 'dockerSnap': 'adguard/snap-builder:1.0' + 'dockerSnap': 'adguard/snap-builder:1.1' 'snapcraftChannel': 'edge' 'stages': @@ -191,7 +191,7 @@ # need to build a few of these. 'variables': 'channel': 'beta' - 'dockerSnap': 'adguard/snap-builder:1.0' + 'dockerSnap': 'adguard/snap-builder:1.1' 'snapcraftChannel': 'beta' # release-vX.Y.Z branches are the branches from which the actual final # release is built. @@ -207,5 +207,5 @@ # are the ones that actually get released. 'variables': 'channel': 'release' - 'dockerSnap': 'adguard/snap-builder:1.0' + 'dockerSnap': 'adguard/snap-builder:1.1' 'snapcraftChannel': 'candidate' diff --git a/bamboo-specs/test.yaml b/bamboo-specs/test.yaml index d56bce8d..29c15e78 100644 --- a/bamboo-specs/test.yaml +++ b/bamboo-specs/test.yaml @@ -5,8 +5,8 @@ 'key': 'AHBRTSPECS' 'name': 'AdGuard Home - Build and run tests' 'variables': - # TODO(a.garipov): Split away the frontend image and stages. - 'dockerGo': 'adguard/golang-ubuntu:9.0' + 'dockerFrontend': 'adguard/home-js-builder:1.1' + 'dockerGo': 'adguard/go-builder:1.21.8--1' 'channel': 'development' 'stages': @@ -14,7 +14,14 @@ 'manual': false 'final': false 'jobs': - - 'Test' + - 'Test frontend' + - 'Test backend' + + - 'Frontend': + manual: false + final: false + jobs: + - 'Build frontend' - 'Artifact': manual: false @@ -22,14 +29,12 @@ jobs: - 'Artifact' -'Test': +'Test frontend': 'docker': - 'image': '${bamboo.dockerGo}' + 'image': '${bamboo.dockerFrontend}' 'volumes': '${system.YARN_DIR}': '${bamboo.cacheYarn}' - '${system.GO_CACHE_DIR}': '${bamboo.cacheGo}' - '${system.GO_PKG_CACHE_DIR}': '${bamboo.cacheGoPkg}' - 'key': 'TEST' + 'key': 'JSTEST' 'other': 'clean-working-dir': true 'tasks': @@ -43,13 +48,84 @@ set -e -f -u -x - make VERBOSE=1 ci go-tools lint + make VERBOSE=1 js-deps js-lint js-test 'final-tasks': - 'clean' 'requirements': - 'adg-docker': 'true' +'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 VERBOSE=1 go-deps go-tools go-lint 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': @@ -71,25 +147,13 @@ make\ ARCH="amd64"\ - OS="windows darwin linux"\ CHANNEL=${bamboo.channel}\ - SIGN=0\ + FRONTEND_PREBUILT=1\ + OS="windows darwin linux"\ PARALLELISM=1\ + SIGN=0\ VERBOSE=2\ build-release - '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 'requirements': - 'adg-docker': 'true' @@ -123,5 +187,6 @@ # Set the default release channel on the release branch to beta, as we # may need to build a few of these. 'variables': - 'dockerGo': 'adguard/golang-ubuntu:9.0' + 'dockerFrontend': 'adguard/home-js-builder:1.1' + 'dockerGo': 'adguard/go-builder:1.21.8--1' 'channel': 'candidate'