name: Go Tests on: workflow_dispatch: push: branches: - "master" # Triggers the workflow on PRs to master branch only. pull_request_target: types: [labeled] branches: - "master" # Ensures that only the latest commit is running for each PR at a time. concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.ref }} cancel-in-progress: true jobs: GO-tests: # Go modules doesn't allow passing credentials to a private registry using an HTTP URL. Therefore, the Go tests run against a remote Artifactory server. name: Go tests (${{ matrix.os }}) if: github.event_name == 'workflow_dispatch' || github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'safe to test') strategy: fail-fast: false matrix: os: [ubuntu, windows, macos] runs-on: ${{ matrix.os }}-latest steps: - name: Checkout code uses: actions/checkout@v5 with: ref: ${{ github.event.pull_request.head.sha || github.ref }} - name: Setup FastCI uses: jfrog-fastci/fastci@v0 with: github_token: ${{ secrets.GITHUB_TOKEN }} fastci_otel_token: ${{ secrets.FASTCI_TOKEN }} - name: Setup Go with cache uses: jfrog/.github/actions/install-go-with-cache@main - name: Run Go tests run: go test -v -timeout 0 --test.go --jfrog.url=${{ secrets.PLATFORM_URL }} --jfrog.adminToken=${{ secrets.PLATFORM_ADMIN_TOKEN }} --ci.runId=${{ runner.os }}-go