name: e2e test
on:
  # Trigger the workflow on push or pull request,
  # but only for the master branch
  push:
    paths-ignore:
      - '**.md'
  pull_request:
    paths-ignore:
      - '**.md'
jobs:
  job_1:
    name: Build goc binary
    runs-on: ubuntu-latest
    steps:
      - name: Install Go
        uses: actions/setup-go@v2
        with:
          go-version: 1.14.x
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Go build
        run: |
          go build
      - name: Use goc to build self
        run: |
          ./goc build --output ./gocc --debug
      - name: Upload goc binary
        uses: actions/upload-artifact@v2
        with:
          name: goc
          path: goc
      - name: Upload covered self goc binary
        uses: actions/upload-artifact@v2
        with:
          name: gocc
          path: gocc

  job_2:
    name: E2E test
    needs: job_1
    strategy:
      matrix:
        go-version: [1.11.x, 1.12.x, 1.13.x, 1.14.x]
    runs-on: ubuntu-latest
    steps:
      - name: Install Go
        uses: actions/setup-go@v2
        with:
          go-version: ${{ matrix.go-version }}
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Download built binary
        uses: actions/download-artifact@v2
        with:
          path: /home/runner/tools
      - name: Install bats-core 
        run: |
          git clone https://github.com/bats-core/bats-core.git
          cd bats-core
          sudo ./install.sh /usr/local
      - name: Do test
        env:
          GOVERSION: ${{ matrix.go-version }}
        run: |
          chmod +x /home/runner/tools/goc/goc
          export PATH=/home/runner/tools/goc:$PATH
          chmod +x /home/runner/tools/gocc/gocc
          export PATH=/home/runner/tools/gocc:$PATH
          cd tests
          ./run-ci-actions.sh