name: e2e
# Runs the CI end-to-end test network on all pushes to master or release branches
# and every pull request, but only if any Go files have been changed.
on:
  workflow_dispatch: # allow running workflow manually
  pull_request:
  push:
    branches:
      - master
      - release/**

jobs:
  e2e-test:
    runs-on: ubuntu-latest
    timeout-minutes: 15
    steps:
      - uses: actions/setup-go@v2
        with:
          go-version: '1.16'
      - uses: actions/checkout@v2.3.4
      - uses: technote-space/get-diff-action@v4
        with:
          PATTERNS: |
            **/**.go
            go.mod
            go.sum

      - name: Build
        working-directory: test/e2e
        # Run two make jobs in parallel, since we can't run steps in parallel.
        run: make -j2 docker runner
        if: "env.GIT_DIFF != ''"

      - name: Run CI testnet
        working-directory: test/e2e
        run: ./build/runner -f networks/ci.toml
        if: "env.GIT_DIFF != ''"

      - name: Emit logs on failure
        if: ${{ failure() }}
        working-directory: test/e2e
        run: ./build/runner -f networks/ci.toml logs
