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.26 LITD_ITEST_BRANCH: master jobs: ######################## # commit message lint ######################## commit-message: name: Commit Message runs-on: ubuntu-latest steps: - name: git checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Lint commit messages env: EVENT_NAME: ${{ github.event_name }} BASE_SHA: ${{ github.event.pull_request.base.sha }} HEAD_SHA: ${{ github.event.pull_request.head.sha }} BEFORE_SHA: ${{ github.event.before }} GITHUB_SHA: ${{ github.sha }} run: | if [ "$EVENT_NAME" = "pull_request" ]; then range="$BASE_SHA..$HEAD_SHA" elif [ "$EVENT_NAME" = "push" ] && [ "$BEFORE_SHA" != "0000000000000000000000000000000000000000" ]; then range="$BEFORE_SHA..$GITHUB_SHA" else range="$(git rev-parse HEAD^ 2>/dev/null)..HEAD" fi make commitmsg-lint range="$range" ######################## # RPC compile and check ######################## rpc-check: name: RPC compilation check runs-on: ubuntu-latest steps: - name: git checkout uses: actions/checkout@v4 - 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 ######################## # SQL compile and check ######################## sqlc-check: name: SQL compilation check runs-on: ubuntu-latest steps: - name: git checkout uses: actions/checkout@v4 - name: setup go ${{ env.GO_VERSION }} uses: actions/setup-go@v2 with: go-version: '~${{ env.GO_VERSION }}' - name: run check run: make sqlc-check ######################## # go mod check ######################## mod-check: name: go mod check runs-on: ubuntu-latest steps: - name: git checkout uses: actions/checkout@v4 - 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@v4 with: fetch-depth: 0 - name: setup go ${{ env.GO_VERSION }} uses: actions/setup-go@v5 with: go-version: '~${{ env.GO_VERSION }}' - name: build run: make build tags=dev - name: lint run: make lint ######################## # Verify documentation ######################## docs-check: name: verify that auto-generated documentation is up-to-date runs-on: ubuntu-latest steps: - name: git checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: setup go ${{ env.GO_VERSION }} uses: actions/setup-go@v5 with: go-version: '~${{ env.GO_VERSION }}' - name: check run: make docs-check - name: check generated FSM diagrams run: make fsm-check ######################## # run unit-test sqlite3 race ######################## unit-test: name: run unit-test sqlite3 race runs-on: ubuntu-latest steps: - name: git checkout uses: actions/checkout@v4 - name: setup go ${{ env.GO_VERSION }} uses: actions/setup-go@v5 with: go-version: '~${{ env.GO_VERSION }}' - name: run unit-test sqlite3 race run: make unit-race ######################## # run unit-test postgres race ######################## unit-test-postgres: name: run unit-test postgres race runs-on: ubuntu-latest steps: - name: git checkout uses: actions/checkout@v4 - name: setup go ${{ env.GO_VERSION }} uses: actions/setup-go@v5 with: go-version: '~${{ env.GO_VERSION }}' - name: run unit-test postgres race run: make unit-postgres-race ######################## # Run LiTd tests ######################## run-lit-itests: name: run LiT itests runs-on: ubuntu-latest continue-on-error: true steps: - name: git checkout uses: actions/checkout@v4 - name: Prepare LiT workspace uses: ./.github/actions/lit-setup - name: Run LiT itests working-directory: ./lightning-terminal run: make itest icase='terminal .*' ######################## # Run LiTd unit tests ######################## run-lit-unit: name: run LiT unit tests runs-on: ubuntu-latest continue-on-error: true steps: - name: git checkout uses: actions/checkout@v4 - name: Prepare LiT workspace uses: ./.github/actions/lit-setup - name: Run LiT unit tests working-directory: ./lightning-terminal run: make unit