--- name: Go on: pull_request: push: branches: - main - "release-*" concurrency: group: ${{ github.workflow }}-${{ (github.event.pull_request && github.event.pull_request.number) || github.ref || github.run_id }} cancel-in-progress: true # Minimal permissions to be inherited by any job that don't declare it's own permissions permissions: contents: read jobs: supportedVersions: name: Fetch supported Go versions runs-on: ubuntu-latest outputs: supported_versions: ${{ steps.matrix.outputs.supported_versions }} steps: - name: Checkout code uses: actions/checkout@v4 - name: Read supported_go_versions.txt id: matrix run: | versions=$(cat supported_go_versions.txt) matrix="[$(echo "$versions" | sed 's/\(.*\)/"\1"/' | paste -s -d,)]" echo "supported_versions=$matrix" >> $GITHUB_OUTPUT test: name: Tests runs-on: ubuntu-latest needs: supportedVersions strategy: matrix: go_version: ${{ fromJSON(needs.supportedVersions.outputs.supported_versions) }} steps: - name: Checkout code uses: actions/checkout@v4.1.1 - name: Run tests and check license uses: dagger/dagger-for-github@v5 with: version: "latest" verb: call args: -vvv --src . make --go-version ${{matrix.go_version}} --args 'check_license test' - name: Run style and unused uses: dagger/dagger-for-github@v6 if: ${{ matrix.go_version == '1.20' }} with: version: "latest" verb: call args: -vvv --src . make --args 'check_license test'