name: Tests on: push: pull_request: # edtited - because base branch can be modified # synchronize - update commits on PR types: [opened, synchronize, edited] jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ ubuntu-latest, macos-latest ] name: Tests, ${{ matrix.os }} steps: - name: Fix CRLF on Windows if: runner.os == 'Windows' run: git config --global core.autocrlf false - name: Check out code into the Go module directory uses: actions/checkout@v2 # Increase the pagefile size on Windows to aviod running out of memory - name: Increase pagefile size on Windows if: runner.os == 'Windows' run: powershell -command .github\workflows\SetPageFileSize.ps1 - name: Setup Go uses: actions/setup-go@v2 with: go-version: 1.16 # Source: https://github.com/actions/cache/blob/main/examples.md#go---modules - name: Go Cache uses: actions/cache@v2 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name: Test shell: bash run: ./build_and_test.sh -v stability-test-fast: runs-on: ubuntu-latest name: Fast stability tests, ${{ github.head_ref }} steps: - name: Setup Go uses: actions/setup-go@v2 with: go-version: 1.16 - name: Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: Install kaspad run: go install ./... - name: Install golint run: go get -u golang.org/x/lint/golint - name: Run fast stability tests working-directory: stability-tests run: ./install_and_test.sh coverage: runs-on: ubuntu-latest name: Produce code coverage steps: - name: Check out code into the Go module directory uses: actions/checkout@v2 - name: Setup Go uses: actions/setup-go@v2 with: go-version: 1.16 - name: Delete the stability tests from coverage run: rm -r stability-tests - name: Create coverage file run: go test -v -covermode=atomic -coverpkg=./... -coverprofile coverage.txt ./... - name: Upload coverage file run: bash <(curl -s https://codecov.io/bash)