mirror of
https://github.com/AdguardTeam/AdGuardHome.git
synced 2026-11-03 02:27:04 +09:00
* all: upd go; upd tools; upd chlog; upd scripts and hooks; * make: fix script; * make: fix script; * make: upd docs; add todos; * make: fix go-test;
169 lines
4.8 KiB
YAML
169 lines
4.8 KiB
YAML
'env':
|
|
'CLIENT_DIR': 'client'
|
|
'GO_VERSION': '1.27.3'
|
|
'NODE_VERSION': '24'
|
|
'jobs':
|
|
'ESLint':
|
|
'if': |
|
|
${{ github.repository_owner != 'AdGuardSoftwareLimited' }}
|
|
'permissions':
|
|
'contents': 'read'
|
|
'runs-on': 'ubuntu-latest'
|
|
'steps':
|
|
- 'uses': 'actions/checkout@v6'
|
|
'with':
|
|
# Set to false to avoid GITHUB_TOKEN leaking.
|
|
#
|
|
# See https://github.com/actions/checkout/issues/485#issuecomment-934422611.
|
|
'persist-credentials': false
|
|
- 'name': 'Install modules'
|
|
'run': |
|
|
#!/bin/sh
|
|
|
|
set -e -f -u -x
|
|
|
|
npm \
|
|
--prefix="./${{ env.CLIENT_DIR }}" \
|
|
ci \
|
|
;
|
|
- 'name': 'Run ESLint'
|
|
'run': |
|
|
#!/bin/sh
|
|
|
|
set -e -f -u -x
|
|
|
|
npm \
|
|
--prefix="./${{ env.CLIENT_DIR }}" \
|
|
run lint \
|
|
;
|
|
'TestJob':
|
|
'if': |
|
|
${{ github.repository_owner != 'AdGuardSoftwareLimited' }}
|
|
'permissions':
|
|
'contents': 'read'
|
|
'runs-on': '${{ matrix.os }}'
|
|
'strategy':
|
|
'fail-fast': false
|
|
'matrix':
|
|
'os':
|
|
- 'windows-latest'
|
|
- 'macos-latest'
|
|
- 'ubuntu-latest'
|
|
'steps':
|
|
- 'uses': 'actions/checkout@v6'
|
|
'with':
|
|
# Set to false to avoid GITHUB_TOKEN leaking.
|
|
#
|
|
# See https://github.com/actions/checkout/issues/485#issuecomment-934422611.
|
|
'persist-credentials': false
|
|
- 'uses': 'actions/setup-go@v6'
|
|
'with':
|
|
'go-version': '${{ env.GO_VERSION }}'
|
|
- 'name': 'Lint step'
|
|
'run': |
|
|
#!/bin/sh
|
|
|
|
set -e -f -u -x
|
|
|
|
# NOTE: Only run those checks that only need Go and Go tools.
|
|
make \
|
|
VERBOSE=1 \
|
|
go-deps \
|
|
go-os-check \
|
|
go-lint \
|
|
;
|
|
'shell': 'bash'
|
|
- 'uses': 'actions/setup-node@v7'
|
|
'with':
|
|
'node-version': '${{ env.NODE_VERSION }}'
|
|
- 'name': 'Run tests'
|
|
'shell': 'bash'
|
|
'run': |
|
|
#!/bin/sh
|
|
|
|
set -e -f -u -x
|
|
make \
|
|
CLIENT_DIR=${{ env.CLIENT_DIR }} \
|
|
VERBOSE=1 \
|
|
deps \
|
|
test \
|
|
go-bench \
|
|
go-fuzz \
|
|
;
|
|
- 'name': 'Upload coverage'
|
|
'uses': 'codecov/codecov-action@v1'
|
|
'if': "success() && matrix.os == 'ubuntu-latest'"
|
|
'with':
|
|
'token': '${{ secrets.CODECOV_TOKEN }}'
|
|
'file': './cover.out'
|
|
'BuildSnapshot':
|
|
'if': |
|
|
${{ github.repository_owner != 'AdGuardSoftwareLimited' }}
|
|
'needs': 'TestJob'
|
|
'permissions':
|
|
'contents': 'read'
|
|
'runs-on': 'ubuntu-latest'
|
|
'steps':
|
|
- 'uses': 'actions/checkout@v6'
|
|
'with':
|
|
# Set to false to avoid GITHUB_TOKEN leaking.
|
|
#
|
|
# See https://github.com/actions/checkout/issues/485#issuecomment-934422611.
|
|
'persist-credentials': false
|
|
- 'uses': 'actions/setup-go@v6'
|
|
'with':
|
|
'go-version': '${{ env.GO_VERSION }}'
|
|
- 'name': 'Set up Go modules cache'
|
|
'uses': 'actions/cache@v4'
|
|
'with':
|
|
'path': '~/go/pkg/mod'
|
|
'key': "${{ runner.os }}-go-${{ hashFiles('go.sum') }}"
|
|
'restore-keys': '${{ runner.os }}-go-'
|
|
- 'uses': 'actions/setup-node@v7'
|
|
'with':
|
|
'node-version': '${{ env.NODE_VERSION }}'
|
|
- 'name': 'Set up Snapcraft'
|
|
'run': |
|
|
#!/bin/sh
|
|
|
|
set -e -f -u -x
|
|
|
|
sudo snap install snapcraft --classic
|
|
- 'name': 'Set up QEMU'
|
|
'uses': 'docker/setup-qemu-action@v3'
|
|
- 'name': 'Set up Docker Buildx'
|
|
'uses': 'docker/setup-buildx-action@v3'
|
|
'with':
|
|
'install': true
|
|
- 'name': 'Run snapshot build'
|
|
'run': |
|
|
#!/bin/sh
|
|
|
|
set -e -f -u -x
|
|
|
|
# Set a custom version string, since the checkout action does not seem
|
|
# to know about the master branch, while the version script uses it to
|
|
# count the number of commits within the branch.
|
|
make \
|
|
CLIENT_DIR=${{ env.CLIENT_DIR }} \
|
|
SIGN=0 \
|
|
VERBOSE=1 \
|
|
VERSION="v0.0.0-github" \
|
|
build-release \
|
|
build-docker \
|
|
;
|
|
'name': 'Test and snapshot workflow'
|
|
'on':
|
|
'push':
|
|
'tags':
|
|
- 'v*'
|
|
'branches':
|
|
- '*'
|
|
'pull_request':
|
|
# Permissions are disabled for all the jobs by default, and then overridden for
|
|
# specific jobs if needed. This is a recommended practice for security reasons,
|
|
# and also allows to avoid mistakes with permissions when creating new jobs.
|
|
#
|
|
# See https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#permissions.
|
|
'permissions': {}
|