name: CI on: push: branches: - "master" pull_request: branches: - "*" defaults: run: shell: bash env: # go needs absolute directories, using the $HOME variable doesn't work here. GOCACHE: /home/runner/work/go/pkg/build GOPATH: /home/runner/work/go GO111MODULE: on # If you change this value, please change it in the following files as well: # /Dockerfile # /.golanlint-ci GO_VERSION: 1.19.4 jobs: ######################## # RPC compile and check ######################## rpc-check: name: RPC compilation check runs-on: ubuntu-latest steps: - name: git checkout uses: actions/checkout@v2 - name: setup go ${{ env.GO_VERSION }} uses: actions/setup-go@v2 with: go-version: '~${{ env.GO_VERSION }}' - name: RPC for JS compilation run: make rpc-js-compile - name: run check run: make rpc-check ############################ # Mock generation and check ############################ mockgen-check: name: Mockgen check runs-on: ubuntu-latest steps: - name: git checkout uses: actions/checkout@v2 - name: setup go ${{ env.GO_VERSION }} uses: actions/setup-go@v2 with: go-version: '~${{ env.GO_VERSION }}' - name: run check run: make mock-check ######################## # lint code ######################## lint: name: lint code runs-on: ubuntu-latest steps: - name: git checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: go cache uses: actions/cache@v1 with: path: /home/runner/work/go key: lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} restore-keys: | pool-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} pool-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- pool-${{ runner.os }}-go-${{ env.GO_VERSION }}- pool-${{ runner.os }}-go- - name: setup go ${{ env.GO_VERSION }} uses: actions/setup-go@v2 with: go-version: '~${{ env.GO_VERSION }}' - name: lint run: make lint ######################## # run unit tests ######################## unit-test: name: run unit tests runs-on: ubuntu-latest strategy: # Allow other tests in the matrix to continue if one fails. fail-fast: false matrix: unit_type: - unit-race - unit-cover - fuzz steps: - name: git checkout uses: actions/checkout@v2 - name: go cache uses: actions/cache@v1 with: path: /home/runner/work/go key: lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} restore-keys: | pool-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} pool-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- pool-${{ runner.os }}-go-${{ env.GO_VERSION }}- pool-${{ runner.os }}-go- - name: setup go ${{ env.GO_VERSION }} uses: actions/setup-go@v2 with: go-version: '~${{ env.GO_VERSION }}' - name: run ${{ matrix.unit_type }} run: make ${{ matrix.unit_type }} - name: Send coverage uses: shogo82148/actions-goveralls@v1 if: matrix.unit_type == 'unit-cover' with: path-to-profile: coverage.txt parallel: true