Skip to content

Add itest coverage for custom channels strict forwarding #1746

Add itest coverage for custom channels strict forwarding

Add itest coverage for custom channels strict forwarding #1746

Workflow file for this run

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.3
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