Skip to content

global subscription context config option #5198

global subscription context config option

global subscription context config option #5198

Workflow file for this run

name: Test
on:
push:
branches:
- master
pull_request:
types: [opened, synchronize]
env:
GOTOOLCHAIN: local
# When a new revision is pushed to a PR, cancel all in-progress CI runs for that
# PR. See https://docs.github.com/en/actions/using-jobs/using-concurrency
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions:
# Required: allow read access to the content for analysis.
contents: read
# Optional: allow read access to pull request. Use with `only-new-issues` option.
pull-requests: read
# Optional: allow write access to checks to allow the action to annotate code in the PR.
checks: write
jobs:
test:
timeout-minutes: 10
permissions:
contents: read
pull-requests: write
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
go: ["1.26", "1.25"]
runs-on: ${{ matrix.os }}
continue-on-error: true
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v5
with:
persist-credentials: "false"
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ matrix.go }}
# Install gotestsum on the VM running the action.
- name: Setup gotestsum
run: go install gotest.tools/gotestsum@latest
- name: Core tests
shell: bash
run: |
set -euo pipefail
go mod download
gotestsum --jsonfile go_test.json --junitfile report.xml --format-icons=hivis --format=pkgname-and-test-fails -- -race ./... -trimpath
- name: Example tests
shell: bash
if: success() || failure() # always run even if the previous step fails
run: |
cd _examples
go mod download
gotestsum --junitfile ../go_examples_report.xml --format-icons=hivis --format=pkgname-and-test-fails -- -race ./... -trimpath
- name: Upload Test Report
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
if: always() # always run even if the previous step fails
with:
name: test-junit-${{ matrix.os }}-${{ matrix.go }}
path: '*.xml'
retention-days: 1
- name: action-junit-report
shell: bash
if: success() || failure() # always run even if the previous step fails
run: |
echo "### mikepenz/action-junit-report! :rocket:" >> $GITHUB_STEP_SUMMARY
- name: Publish Test Report
uses: mikepenz/action-junit-report@d9f48fc87bc235f7e214acf696ca5abc0a986f16 # v5
if: success() || failure() # always run even if the previous step fails
with:
report_paths: |
report.xml
go_examples_report.xml
- name: robherley/go-test-action announcement
shell: bash
if: success() || failure() # always run even if the previous step fails
run: |
echo "### robherley/go-test-action! :rocket:" >> $GITHUB_STEP_SUMMARY
# - name: Annotate tests does not work on pull-requests for security
# if: success() || failure() # always run even if the previous step fails
# uses: guyarb/golang-test-annotations@v0.8.0
# with:
# test-results: go_test.json
- name: Publish go-test-action Report
if: success() || failure() # always run even if the previous step fails
uses: robherley/go-test-action@2f859e0c8769d755d3174eecb9af8f64660827f3 # v1.1.0
with:
# Parse an exisiting [test2json](https://pkg.go.dev/cmd/test2json) file, instead of executing go test.
# Will always exit(0) on successful test file parse.
# Optional. No default
fromJSONFile: go_test.json
omit: |
untested
successful
- name: test-summary/action announcement
shell: bash
if: success() || failure() # always run even if the previous step fails
run: |
echo "### test-summary/action! :rocket:" >> $GITHUB_STEP_SUMMARY
- name: Publish Test Summary Report
uses: test-summary/action@37b508cfee6d4d080eedd00b5bb240a6a784a6a5 # v2.6
if: success() || failure() # always run even if the previous step fails
with:
show: "fail, skip"
paths: |
report.xml
go_examples_report.xml