mirror of
https://github.com/lightninglabs/lightning-terminal.git
synced 2026-08-13 12:33:36 +02:00
272 lines
6.5 KiB
YAML
272 lines
6.5 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- "master"
|
|
pull_request:
|
|
branches:
|
|
- "*"
|
|
|
|
env:
|
|
# If you change this value, please change it in the following files as well:
|
|
# /Dockerfile
|
|
# /dev.Dockerfile
|
|
GO_VERSION: 1.22.6
|
|
|
|
jobs:
|
|
########################
|
|
# frontend build checks
|
|
########################
|
|
frontend:
|
|
name: frontend tests on ${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
matrix:
|
|
node_version: [ 16.x ]
|
|
os: [ ubuntu-latest, windows-latest, macOS-latest ]
|
|
|
|
steps:
|
|
- name: git checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: setup nodejs ${{ matrix.node_version }}
|
|
uses: ./.github/actions/setup-node
|
|
with:
|
|
node-version: '${{ matrix.node_version }}'
|
|
|
|
- name: install dependencies
|
|
working-directory: ./app
|
|
run: yarn
|
|
|
|
- name: lint code
|
|
working-directory: ./app
|
|
run: yarn lint
|
|
|
|
- name: typescript compile
|
|
working-directory: ./app
|
|
run: yarn tsc
|
|
|
|
- name: unit tests
|
|
working-directory: ./app
|
|
run: yarn test:ci
|
|
|
|
########################
|
|
# backend build checks
|
|
########################
|
|
backend:
|
|
name: backend build on ${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
matrix:
|
|
go_version: [ 1.18.x ]
|
|
os: [ ubuntu-latest, windows-latest, macOS-latest ]
|
|
|
|
steps:
|
|
- name: git checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: setup nodejs ${{ matrix.node_version }}
|
|
uses: ./.github/actions/setup-node
|
|
with:
|
|
node-version: '${{ matrix.node_version }}'
|
|
|
|
- name: setup go ${{ env.GO_VERSION }}
|
|
uses: ./.github/actions/setup-go
|
|
with:
|
|
go-version: '${{ env.GO_VERSION }}'
|
|
|
|
- name: build backend binary
|
|
run: make build
|
|
|
|
- name: build CLI binaries
|
|
run: make go-install-cli
|
|
|
|
########################
|
|
# proto compile check
|
|
########################
|
|
proto-compile-check:
|
|
name: RPC proto compilation check
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: git checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: setup nodejs ${{ matrix.node_version }}
|
|
uses: ./.github/actions/setup-node
|
|
with:
|
|
node-version: '${{ matrix.node_version }}'
|
|
|
|
- name: setup go ${{ env.GO_VERSION }}
|
|
uses: ./.github/actions/setup-go
|
|
with:
|
|
go-version: '${{ env.GO_VERSION }}'
|
|
|
|
- name: install dependencies
|
|
working-directory: ./app
|
|
run: yarn
|
|
|
|
- name: run check
|
|
run: make rpc-js-compile && make protos-check
|
|
|
|
- name: compile rpc for golang
|
|
run: make rpc
|
|
|
|
- name: run check
|
|
run: make mod-check
|
|
|
|
########################
|
|
# check commits
|
|
########################
|
|
check-commits:
|
|
if: github.event_name == 'pull_request'
|
|
name: check commits
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: git checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: setup go ${{ env.GO_VERSION }}
|
|
uses: ./.github/actions/setup-go
|
|
with:
|
|
go-version: '${{ env.GO_VERSION }}'
|
|
|
|
- name: fetch and rebase on ${{ github.base_ref }}
|
|
run: |
|
|
git remote add upstream https://github.com/${{ github.repository }}
|
|
git fetch upstream
|
|
export GIT_COMMITTER_EMAIL="litd-ci@example.com"
|
|
export GIT_COMMITTER_NAME="LiT CI"
|
|
git rebase upstream/${{ github.base_ref }}
|
|
|
|
- name: check commits
|
|
run: scripts/check-each-commit.sh upstream/${{ github.base_ref }}
|
|
|
|
########################
|
|
# lint code
|
|
########################
|
|
lint:
|
|
name: lint
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: git checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: setup go ${{ env.GO_VERSION }}
|
|
uses: ./.github/actions/setup-go
|
|
with:
|
|
go-version: '${{ env.GO_VERSION }}'
|
|
|
|
- name: prepare dummy static data
|
|
run: mkdir -p app/build; touch app/build/index.html
|
|
|
|
- name: run check
|
|
run: make lint mod-check
|
|
|
|
########################
|
|
# unit race tests
|
|
########################
|
|
unit-race:
|
|
name: unit-race
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: git checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: setup go ${{ env.GO_VERSION }}
|
|
uses: ./.github/actions/setup-go
|
|
with:
|
|
go-version: '${{ env.GO_VERSION }}'
|
|
|
|
- name: run check
|
|
run: make unit-race
|
|
|
|
########################
|
|
# unit tests
|
|
########################
|
|
unit:
|
|
name: unit tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: git checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: setup go ${{ env.GO_VERSION }}
|
|
uses: ./.github/actions/setup-go
|
|
with:
|
|
go-version: '${{ env.GO_VERSION }}'
|
|
|
|
- name: run check
|
|
run: make unit
|
|
|
|
########################
|
|
# integration tests
|
|
########################
|
|
itest:
|
|
name: integration test
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: git checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: setup nodejs ${{ matrix.node_version }}
|
|
uses: ./.github/actions/setup-node
|
|
with:
|
|
node-version: '${{ matrix.node_version }}'
|
|
|
|
- name: setup go ${{ env.GO_VERSION }}
|
|
uses: ./.github/actions/setup-go
|
|
with:
|
|
go-version: '${{ env.GO_VERSION }}'
|
|
|
|
- name: install dependencies
|
|
working-directory: ./app
|
|
run: yarn
|
|
|
|
- name: run check
|
|
run: make itest
|
|
|
|
- name: Zip log files on failure
|
|
if: ${{ failure() }}
|
|
timeout-minutes: 5
|
|
run: 7z a logs-itest.zip itest/**/*.log
|
|
|
|
- name: Upload log files on failure
|
|
uses: actions/upload-artifact@v3
|
|
if: ${{ failure() }}
|
|
with:
|
|
name: logs-itest
|
|
path: logs-itest.zip
|
|
retention-days: 5
|
|
|
|
########################
|
|
# check PR updates release notes
|
|
########################
|
|
release-notes-check:
|
|
name: check release notes updated
|
|
runs-on: ubuntu-latest
|
|
if: '!contains(github.event.pull_request.labels.*.name, ''no-changelog'')'
|
|
steps:
|
|
- name: git checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: release notes check
|
|
run: scripts/check-release-notes.sh
|