77 lines
2.4 KiB
YAML
77 lines
2.4 KiB
YAML
name: Test
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
pull_request:
|
|
branches: [ main ]
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: "tests"
|
|
cancel-in-progress: false
|
|
|
|
env:
|
|
MAGEARGS: -d build/magefiles -w .
|
|
TARGETPLATFORM: linux/amd64
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- name: Harden Runner
|
|
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v1
|
|
with:
|
|
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
|
|
- name: Checkout
|
|
id: checkout
|
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Set up Go
|
|
id: setup_go
|
|
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
- name: Install Mage
|
|
uses: magefile/mage-action@6a5dcb5fe61f43d7c08a98bc3cf9bc63c308c08e # v3
|
|
with:
|
|
install-only: true
|
|
- name: Run tests
|
|
run: mage ${MAGEARGS} tests:ci
|
|
- name: Upload Coverage
|
|
id: upload_coverage
|
|
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4
|
|
continue-on-error: true
|
|
with:
|
|
token: ${{secrets.CODECOV_TOKEN}}
|
|
file: ./coverage.txt
|
|
fail_ci_if_error: false
|
|
|
|
golangci:
|
|
runs-on: ubuntu-22.04
|
|
permissions:
|
|
pull-requests: read # Use with `only-new-issues` option.
|
|
steps:
|
|
- uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
|
|
with:
|
|
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
|
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
|
- uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
cache: false # golangci-lint maintains its own cache
|
|
- name: Install Mage
|
|
uses: magefile/mage-action@6a5dcb5fe61f43d7c08a98bc3cf9bc63c308c08e # v3
|
|
with:
|
|
install-only: true
|
|
- name: Install build deps
|
|
run: mage ${MAGEARGS} preps:deps
|
|
- name: golangci-lint
|
|
uses: golangci/golangci-lint-action@aaa42aa0628b4ae2578232a66b541047968fac86 # v6.1.0
|
|
with:
|
|
only-new-issues: true
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|