Merge pull request #106 from ViktorTigerstrom/2024-02-bump-litd-to-v0… #507
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
GO_VERSION: 1.21 | |
jobs: | |
######################## | |
# build pkg and wasm bin | |
######################## | |
build: | |
name: build package and wasm | |
runs-on: ubuntu-latest | |
steps: | |
- name: git checkout | |
uses: actions/checkout@v3 | |
- name: go cache | |
uses: actions/cache@v3 | |
with: | |
path: /home/runner/work/go | |
key: lnc-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
lnc-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} | |
lnc-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- | |
lnc-${{ runner.os }}-go-${{ env.GO_VERSION }}- | |
lnc-${{ runner.os }}-go- | |
- name: setup go ${{ env.GO_VERSION }} | |
uses: actions/setup-go@v2 | |
with: | |
go-version: '~${{ env.GO_VERSION }}' | |
- name: go compile | |
run: make build | |
- name: gomobile install | |
run: go install golang.org/x/mobile/cmd/gomobile@v0.0.0-20220928052126-fa6bcb076835 | |
- name: gomobile init | |
run: gomobile init | |
- name: android compile | |
run: make android | |
- name: wasm compile | |
run: make wasm | |
######################## | |
# lint code | |
######################## | |
lint: | |
name: lint code | |
runs-on: ubuntu-latest | |
steps: | |
- name: git checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: go cache | |
uses: actions/cache@v3 | |
with: | |
path: /home/runner/work/go | |
key: lnc-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
lnc-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} | |
lnc-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- | |
lnc-${{ runner.os }}-go-${{ env.GO_VERSION }}- | |
lnc-${{ runner.os }}-go- | |
- name: setup go ${{ env.GO_VERSION }} | |
uses: actions/setup-go@v2 | |
with: | |
go-version: '${{ env.GO_VERSION }}' | |
- name: lint | |
run: GOGC=50 make lint | |
######################## | |
# 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: | |
- unit | |
- unit-race | |
steps: | |
- name: git checkout | |
uses: actions/checkout@v3 | |
- name: go cache | |
uses: actions/cache@v3 | |
with: | |
path: /home/runner/work/go | |
key: lnc-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
lnc-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} | |
lnc-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- | |
lnc-${{ runner.os }}-go-${{ env.GO_VERSION }}- | |
lnc-${{ runner.os }}-go- | |
- name: setup go ${{ env.GO_VERSION }} | |
uses: actions/setup-go@v2 | |
with: | |
go-version: '~${{ env.GO_VERSION }}' | |
- name: run ${{ matrix.unit_type }} | |
run: make ${{ matrix.unit_type }} | |
######################## | |
# run integration tests | |
######################## | |
integration-test: | |
name: run itests | |
runs-on: ubuntu-latest | |
steps: | |
- name: git checkout | |
uses: actions/checkout@v3 | |
- name: go cache | |
uses: actions/cache@v3 | |
with: | |
path: /home/runner/work/go | |
key: lnc-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
lnc-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} | |
lnc-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- | |
lnc-${{ runner.os }}-go-${{ env.GO_VERSION }}- | |
lnc-${{ runner.os }}-go- | |
- name: setup go ${{ env.GO_VERSION }} | |
uses: actions/setup-go@v2 | |
with: | |
go-version: '${{ env.GO_VERSION }}' | |
- name: prepare for itest | |
run: mkdir -p /home/runner/.aperture | |
- name: run itest | |
run: make itest | |
- name: Zip log files on failure | |
if: ${{ failure() }} | |
run: 7z a logs-itest.zip itest/**/*.log | |
- name: Upload log files on failure | |
uses: actions/upload-artifact@v2.2.4 | |
if: ${{ failure() }} | |
with: | |
name: logs-itest | |
path: logs-itest.zip | |
retention-days: 5 |