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.11, 1.12, 1.13] 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 "::set-env name=GOPATH::$(dirname $GITHUB_WORKSPACE)" echo "::set-env name=GO111MODULE::on" echo "::set-env name=GOPROXY::https://proxy.golang.org" echo "::add-path::$(dirname $GITHUB_WORKSPACE)/bin" shell: bash - name: Checkout Code uses: actions/checkout@v1 with: ref: ${{ github.ref }} - name: Install Dependencies (Linux / MacOS) if: matrix.os != 'windows-latest' run: | mkdir -p $GOPATH/bin curl -L -o $GOPATH/bin/gfmrun "https://github.com/urfave/gfmrun/releases/download/v1.2.14/gfmrun-$(go env GOOS)-amd64-v1.2.14" chmod +x $GOPATH/bin/gfmrun npm install markdown-toc - name: Install Dependencies (Windows) if: matrix.os == 'windows-latest' run: | curl -L -o gfmrun.exe "https://github.com/urfave/gfmrun/releases/download/v1.2.14/gfmrun-windows-amd64-v1.2.14.exe" npm install markdown-toc - name: Run Tests run: | go run build.go vet go run build.go test - name: Run Tests (v1) (Linux / MacOS) if: contains(github.base_ref, 'v1') && matrix.os != 'windows-latest' run: | go run build.go gfmrun docs/v1/manual.md go run build.go toc docs/v1/manual.md - name: Run Tests (v1) (Windows) if: contains(github.base_ref, 'v1') && matrix.os == 'windows-latest' run: | go run build.go gfmrun docs\v1\manual.md go run build.go toc docs\v1\manual.md - name: Run Tests (v2) (Linux / MacOS) if: contains(github.base_ref, 'master') && matrix.os != 'windows-latest' run: | go run build.go gfmrun docs/v2/manual.md go run build.go toc docs/v2/manual.md - name: Run Tests (v2) (Windows) if: contains(github.base_ref, 'master') && matrix.os == 'windows-latest' run: | go run build.go gfmrun docs/v2/manual.md go run build.go toc docs/v2/manual.md - name: Upload coverage to Codecov if: success() && matrix.go == 1.13 && matrix.os == 'ubuntu-latest' uses: codecov/codecov-action@v1 with: token: 0a8cc73b-bb7c-480b-8626-38a461643761 fail_ci_if_error: true