name: Build and test on: [push, pull_request, workflow_dispatch] jobs: build-test: runs-on: ubuntu-latest strategy: max-parallel: 1 # cannot run tests concurrently, files are created matrix: go-version: ['stable', 'oldstable'] steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v4 with: go-version: ${{ matrix.go-version }} - run: make build # Need to run tests with a temp dir on same file system for os.Rename to succeed. - run: 'mkdir -p tmp && TMPDIR=$PWD/tmp make test' - uses: actions/upload-artifact@v3 with: path: cover.html # Rebuild webmail frontend code, should be the same as committed. - uses: actions/setup-node@v3 with: node-version: 16 cache: 'npm' - run: npm ci - run: 'touch webmail/*.ts && make frontend' # Format code, we check below if nothing changed. - run: 'make fmt' # Enforce the steps above didn't make any changes. - run: git diff --exit-code