name: Run Tests on: push: branches: - master - v1 pull_request: branches: - master - v1 jobs: test: strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] go: [^1.16, ^1.17, ^1.18] name: ${{ matrix.os }} @ Go ${{ matrix.go }} runs-on: ${{ matrix.os }} steps: - name: Set up Go ${{ matrix.go }} uses: actions/setup-go@v1 with: go-version: ${{ matrix.go }} - name: Set GOPATH, PATH and ENV run: | echo "GOPATH=$(dirname $GITHUB_WORKSPACE)" >> $GITHUB_ENV echo "GO111MODULE=on" >> $GITHUB_ENV echo "GOPROXY=https://proxy.golang.org" >> $GITHUB_ENV echo "${GITHUB_WORKSPACE}/.local/bin" >> $GITHUB_PATH shell: bash - name: Checkout Code uses: actions/checkout@v1 with: ref: ${{ github.ref }} - name: GOFMT Check if: matrix.go == '^1.17' && matrix.os == 'ubuntu-latest' run: test -z $(gofmt -l .) - name: vet run: go run internal/build/build.go vet - name: test run: go run internal/build/build.go test - name: check-binary-size run: go run internal/build/build.go check-binary-size - name: Upload coverage to Codecov if: success() && matrix.go == '^1.17' && matrix.os == 'ubuntu-latest' uses: codecov/codecov-action@v1 with: fail_ci_if_error: true test-docs: name: test-docs runs-on: ubuntu-latest steps: - name: Set up Go uses: actions/setup-go@v1 with: go-version: ^1.18 - name: Use Node.js 12.x uses: actions/setup-node@v1 with: node-version: 12.x - name: Set GOPATH, PATH and ENV run: | echo "GOPATH=$(dirname $GITHUB_WORKSPACE)" >> $GITHUB_ENV echo "GO111MODULE=on" >> $GITHUB_ENV echo "GOPROXY=https://proxy.golang.org" >> $GITHUB_ENV echo "${GITHUB_WORKSPACE}/.local/bin" >> $GITHUB_PATH shell: bash - name: Checkout Code uses: actions/checkout@v1 with: ref: ${{ github.ref }} - name: Install Dependencies run: | mkdir -p "${GITHUB_WORKSPACE}/.local/bin" && \ curl -fsSL -o "${GITHUB_WORKSPACE}/.local/bin/gfmrun" "https://github.com/urfave/gfmrun/releases/download/v1.3.0/gfmrun-$(go env GOOS)-$(go env GOARCH)-v1.3.0" && \ chmod +x "${GITHUB_WORKSPACE}/.local/bin/gfmrun" && \ npm install -g markdown-toc@1.2.0 - name: Run Tests (v1) if: contains(github.base_ref, 'v1') run: | go run internal/build/build.go gfmrun docs/v1/manual.md go run internal/build/build.go toc docs/v1/manual.md - name: Run Tests (v2) if: contains(github.base_ref, 'master') run: | go run internal/build/build.go gfmrun docs/v2/manual.md go run internal/build/build.go toc docs/v2/manual.md