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 GO_VERSION: 1.17 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 ######################## # go mod check ######################## mod-check: name: go mod 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 mod-check ######################## # build and lint code ######################## lint: name: build and 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: | loop-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} loop-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- loop-${{ runner.os }}-go-${{ env.GO_VERSION }}- loop-${{ runner.os }}-go- - name: setup go ${{ env.GO_VERSION }} uses: actions/setup-go@v2 with: go-version: '~${{ env.GO_VERSION }}' - name: build run: make build tags=dev - name: lint run: make lint ######################## # run unit tests ######################## unit-test: name: run unit tests runs-on: ubuntu-latest 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: | loop-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} loop-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- loop-${{ runner.os }}-go-${{ env.GO_VERSION }}- loop-${{ runner.os }}-go- - name: setup go ${{ env.GO_VERSION }} uses: actions/setup-go@v2 with: go-version: '~${{ env.GO_VERSION }}' - name: run unit tests run: make unit