gonum.org/v1/gonum@v0.14.0/.github/workflows/ci.yml (about)

     1  name: CI
     2  
     3  on:
     4    pull_request:
     5      branches: [ master ]
     6  
     7  jobs:
     8  
     9    build:
    10      name: Build
    11      strategy:
    12        matrix:
    13          # Do not move this line; it is referred to by README.md.
    14          # Versions of Go that are explicitly supported by Gonum.
    15          go-version: [1.21.x, 1.20.x]
    16          platform: [ubuntu-latest, macos-latest]
    17          force-goarch: ["", "386"]
    18          tags: 
    19            - ""
    20            - "-tags bounds"
    21            - "-tags noasm"
    22            - "-tags safe"
    23  
    24          exclude:
    25            - platform: ubuntu-latest
    26              tags: "-tags bounds"
    27              force-goarch: "386"
    28            - platform: ubuntu-latest
    29              tags: "-tags noasm"
    30              force-goarch: "386"
    31            - platform: ubuntu-latest
    32              tags: "-tags safe"
    33              force-goarch: "386"
    34            - platform: macos-latest
    35              force-goarch: "386"
    36            - platform: macos-latest
    37              tags: "-tags bounds"
    38            - platform: macos-latest
    39              tags: "-tags noasm"
    40            - platform: macos-latest
    41              tags: "-tags safe"
    42  
    43      runs-on: ${{ matrix.platform }}
    44      env:
    45          GO111MODULE: on
    46          GOPATH: ${{ github.workspace }}
    47          TAGS: ${{ matrix.tags }}
    48          FORCE_GOARCH: ${{ matrix.force-goarch }}
    49      defaults:
    50          run:
    51              working-directory: ${{ env.GOPATH }}/src/gonum.org/v1/gonum
    52  
    53      steps:
    54      - name: Install Go
    55        uses: actions/setup-go@v2
    56        with:
    57          go-version: ${{ matrix.go-version }}
    58  
    59      - name: Checkout code
    60        uses: actions/checkout@v2
    61        with:
    62            path: ${{ env.GOPATH }}/src/gonum.org/v1/gonum
    63  
    64      - name: Cache-Go
    65        uses: actions/cache@v2
    66        with:
    67          # In order:
    68          # * Module download cache 
    69          # * Build cache (Linux)
    70          # * Build cache (Mac)
    71          # * Build cache (Windows)
    72          path: |
    73            ~/go/pkg/mod
    74            ~/.cache/go-build
    75            ~/Library/Caches/go-build
    76            '%LocalAppData%\go-build'
    77          key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
    78          restore-keys: |
    79            ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
    80  
    81      - name: Check copyrights+imports+formatting+generate
    82        if: matrix.platform == 'ubuntu-latest' && matrix.tags == ''
    83        run: |
    84          sudo apt-get update
    85          sudo apt-get install -qq ragel
    86          ./.github/workflows/script.d/deps.sh
    87          ./.github/workflows/script.d/check-copyright.sh
    88          ./.github/workflows/script.d/check-imports.sh
    89          ./.github/workflows/script.d/check-formatting.sh
    90          ./.github/workflows/script.d/check-generate.sh
    91  
    92      - name: Test
    93        run: |
    94          ./.github/workflows/script.d/test.sh
    95  
    96      - name: Coverage
    97        if: matrix.platform == 'ubuntu-latest'
    98        run: |
    99          ./.github/workflows/script.d/test-coverage.sh
   100  
   101      - name: Upload-Coverage
   102        if: matrix.platform == 'ubuntu-latest'
   103        uses: codecov/codecov-action@v1