You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
260 lines
7.8 KiB
260 lines
7.8 KiB
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 |
|
BITCOIN_VERSION: 0.20.1 |
|
|
|
# If you change this value, please change it in the following files as well: |
|
# /.travis.yml |
|
# /Dockerfile |
|
# /dev.Dockerfile |
|
# /make/builder.Dockerfile |
|
# /.github/workflows/release.yml |
|
GO_VERSION: 1.16.3 |
|
|
|
jobs: |
|
######################## |
|
# RPC and mobile compilation check |
|
######################## |
|
rpc-check: |
|
name: RPC and mobile compilation check |
|
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: | |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}- |
|
lnd-${{ runner.os }}-go- |
|
|
|
- name: setup go ${{ env.GO_VERSION }} |
|
uses: actions/setup-go@v2 |
|
with: |
|
go-version: '${{ env.GO_VERSION }}' |
|
|
|
- name: run check |
|
run: make rpc-check |
|
|
|
- name: build mobile RPC bindings |
|
run: make mobile-rpc |
|
|
|
- name: build mobile specific code |
|
run: go build --tags="mobile" ./mobile |
|
|
|
######################## |
|
# check commits |
|
######################## |
|
check-commits: |
|
name: check commits |
|
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: | |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}- |
|
lnd-${{ runner.os }}-go- |
|
|
|
- name: setup go ${{ env.GO_VERSION }} |
|
uses: actions/setup-go@v2 |
|
with: |
|
go-version: '${{ env.GO_VERSION }}' |
|
|
|
- name: fetch and rebase on master |
|
run: | |
|
git remote add upstream https://github.com/lightningnetwork/lnd |
|
git fetch upstream |
|
export GIT_COMMITTER_EMAIL="lnd-ci@example.com" |
|
export GIT_COMMITTER_NAME="LND CI" |
|
git rebase upstream/master |
|
|
|
- name: check commits |
|
run: scripts/check-each-commit.sh upstream/master |
|
|
|
######################## |
|
# lint code |
|
######################## |
|
lint: |
|
name: lint code |
|
runs-on: ubuntu-latest |
|
steps: |
|
- name: git checkout |
|
uses: actions/checkout@v2 |
|
|
|
- name: Fetch all history for linter |
|
run: git fetch --prune --unshallow |
|
|
|
- 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: | |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}- |
|
lnd-${{ 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 |
|
|
|
######################## |
|
# cross compilation |
|
######################## |
|
cross-compile: |
|
name: cross compilation |
|
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: | |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}- |
|
lnd-${{ runner.os }}-go- |
|
|
|
- name: setup go ${{ env.GO_VERSION }} |
|
uses: actions/setup-go@v2 |
|
with: |
|
go-version: '${{ env.GO_VERSION }}' |
|
|
|
- name: build release for all architectures |
|
run: make release |
|
|
|
######################## |
|
# sample configuration check |
|
######################## |
|
sample-conf-check: |
|
name: sample configuration check |
|
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: | |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}- |
|
lnd-${{ runner.os }}-go- |
|
|
|
- name: setup go ${{ env.GO_VERSION }} |
|
uses: actions/setup-go@v2 |
|
with: |
|
go-version: '${{ env.GO_VERSION }}' |
|
|
|
- name: check all command line flags exist in sample-lnd.conf file |
|
run: make sample-conf-check |
|
|
|
######################## |
|
# 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: |
|
- btcd unit-cover |
|
- unit tags=kvdb_etcd |
|
- travis-race |
|
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: | |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- |
|
lnd-${{ runner.os }}-go-${{ env.GO_VERSION }}- |
|
lnd-${{ runner.os }}-go- |
|
|
|
- name: setup go ${{ env.GO_VERSION }} |
|
uses: actions/setup-go@v2 |
|
with: |
|
go-version: '${{ env.GO_VERSION }}' |
|
|
|
- name: install bitcoind |
|
run: ./scripts/install_bitcoind.sh |
|
|
|
- name: run ${{ matrix.unit_type }} |
|
run: make ${{ matrix.unit_type }} |
|
|
|
- name: Send coverage |
|
uses: shogo82148/actions-goveralls@v1 |
|
if: matrix.unit_type == 'btcd unit-cover' |
|
with: |
|
path-to-profile: coverage.txt |
|
parallel: true |
|
|
|
######################## |
|
# check pinned dependencies |
|
######################## |
|
dep-pin: |
|
name: check pinned dependencies |
|
runs-on: ubuntu-latest |
|
strategy: |
|
# Allow other tests in the matrix to continue if one fails. |
|
fail-fast: false |
|
matrix: |
|
pinned_dep: |
|
- google.golang.org/grpc v1.24.0 |
|
- github.com/golang/protobuf v1.3.2 |
|
|
|
steps: |
|
- name: git checkout |
|
uses: actions/checkout@v2 |
|
|
|
- name: ensure dependences at correct version |
|
run: if ! grep -q "${{ matrix.pinned_dep }}" go.mod; then echo dependency ${{ matrix.pinned_dep }} should not be altered ; exit 1 ; fi
|
|
|