Skip to content

Merge pull request #81 from ellemouton/subservers #363

Merge pull request #81 from ellemouton/subservers

Merge pull request #81 from ellemouton/subservers #363

Workflow file for this run

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.19.7
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/[email protected]
- 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/[email protected]
if: ${{ failure() }}
with:
name: logs-itest
path: logs-itest.zip
retention-days: 5