From 4803941b882335ff11f109acbc30302c44c89109 Mon Sep 17 00:00:00 2001 From: sputn1ck Date: Thu, 8 Sep 2022 09:24:40 +0200 Subject: [PATCH] ci: add github actions --- .github/workflows/main.yml | 126 +++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..b5cd70b --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,126 @@ +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 \ No newline at end of file