...

Text file src/github.com/theupdateframework/go-tuf/.github/workflows/tests.yml

Documentation: github.com/theupdateframework/go-tuf/.github/workflows

     1on:
     2  workflow_call:
     3name: Tests
     4jobs:
     5  get-go-versions:
     6    name: Collect available Go versions
     7    runs-on: ubuntu-latest
     8    outputs:
     9      matrix: ${{ steps.versions.outputs.matrix }}
    10    steps:
    11      - uses: actions/checkout@v4
    12      - uses: arnested/go-version-action@f3c61952b5f4cc7c74fb216df044634f6a59770f
    13        id: versions
    14
    15  run:
    16    strategy:
    17      fail-fast: false # Keep running if one leg fails.
    18      matrix:
    19        os: [ubuntu-latest, macos-latest, windows-latest]
    20        go-version: ${{ fromJSON(needs.get-go-versions.outputs.matrix) }}
    21    runs-on: ${{ matrix.os }}
    22    needs: get-go-versions
    23    steps:
    24      - name: Checkout code
    25        uses: actions/checkout@v4
    26
    27      - name: Setup - Go ${{ matrix.go-version }}
    28        uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe
    29        with:
    30          go-version: ${{ matrix.go-version }}
    31
    32      - name: Setup - Python
    33        uses: actions/setup-python@65d7f2d534ac1bc67fcd62888c5f4f3d2cb2b236
    34        with:
    35          python-version: "3.10"
    36          cache: "pip"
    37          cache-dependency-path: "requirements-test.txt"
    38
    39      - name: Install Python dependencies
    40        run: |
    41          python3 -m pip install --upgrade pip
    42          python3 -m pip install --upgrade -r requirements-test.txt
    43
    44      - name: Run tests
    45        run: go test -race -covermode atomic -coverprofile='profile.cov' ./...
    46
    47      - name: Send coverage
    48        uses: shogo82148/actions-goveralls@7b1bd2871942af030d707d6574e5f684f9891fb2
    49        with:
    50          path-to-profile: profile.cov
    51          flag-name: Go-${{ matrix.go-version }}
    52          parallel: true
    53
    54  checks:
    55    strategy:
    56      matrix:
    57        go-version: ${{ fromJSON(needs.get-go-versions.outputs.matrix) }}
    58    runs-on: ubuntu-latest
    59    needs: get-go-versions
    60    steps:
    61      - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe
    62        with:
    63          go-version: ${{ matrix.go-version }}
    64      - uses: actions/checkout@v4
    65      - name: golangci-lint
    66        uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc
    67        with:
    68          version: v1.51 # has to be pinned and thus manually updated due to https://github.com/golangci/golangci-lint-action/blob/6a290f7d5d488e1e423b0b37fe802c822ca2c08c/README.md?plain=1#L108
    69          args: --timeout 5m --verbose
    70      - name: govulncheck
    71        uses: golang/govulncheck-action@v1
    72        with:
    73          go-version-input: ${{ matrix.go-version }}
    74          go-package: -json ./...

View as plain text