name: Go on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: name: Build runs-on: ubuntu-latest strategy: matrix: goVer: [1.12, 1.13, 1.14] steps: - name: Set up Go ${{ matrix.goVer }} uses: actions/setup-go@v2 with: go-version: ${{ matrix.goVer }} id: go - name: Set up ANTLR env: ANTLR_VERSION: 4.8 run: | curl -o /usr/local/lib/antlr-${ANTLR_VERSION}-complete.jar https://www.antlr.org/download/antlr-${ANTLR_VERSION}-complete.jar export CLASSPATH=".:/usr/local/lib/antlr-${ANTLR_VERSION}-complete.jar:$CLASSPATH" alias antlr='java -Xmx500M -cp "/usr/local/lib/antlr-${ANTLR_VERSION}-complete.jar:$CLASSPATH" org.antlr.v4.Tool' alias grun='java -Xmx500M -cp "/usr/local/lib/antlr-${ANTLR_VERSION}-complete.jar:$CLASSPATH" org.antlr.v4.gui.TestRig' which antlr - name: Set up linters run: go get -u github.com/mgechev/revive - name: Check out code into the Go module directory uses: actions/checkout@v2 - name: Get dependencies run: make install - name: Lint run: | make vet make lint make fmt git diff if [[ $(git diff) != '' ]]; then echo 'Invalid formatting!' >&2; exit 1; fi - name: Generate run: make generate - name: Compile run: make compile - name: Unit tests run: make cover - name: E2E tests run: | docker run -d -p 9222:9222 -e CHROME_OPTS='--disable-dev-shm-usage --full-memory-crash-report' alpeware/chrome-headless-stable:ver-83.0.4103.61 make e2e docker stop $(docker ps -q)