name: ECS integration tests

on:
  push:
    branches:
      - main
  pull_request:

jobs:
  check-optional-tests:
    name: Check if needs to run ECS tests
    runs-on: ubuntu-latest
    outputs:
      trigger-ecs: ${{steps.runecstest.outputs.triggered}}
    steps:
      - uses: khan/pull-request-comment-trigger@master
        name: Check if test ECS
        if: github.event_name == 'pull_request'
        id: runecstest
        with:
          trigger: '/test-ecs'


  ecs-tests:
    name: ECS e2e tests
    runs-on: ubuntu-latest
    env:
      GO111MODULE: "on"
    needs: check-optional-tests
    if: github.ref == 'refs/heads/main' || needs.check-optional-tests.outputs.trigger-ecs == 'true'
    steps:
      - name: Set up Go 1.16
        uses: actions/setup-go@v2
        with:
          go-version: 1.16
        id: go

      - name: Setup docker CLI
        run: |
          curl https://download.docker.com/linux/static/stable/x86_64/docker-20.10.3.tgz | tar xz
          sudo cp ./docker/docker /usr/bin/ && rm -rf docker && docker version

      - name: Checkout code into the Go module directory
        uses: actions/checkout@v2

      - uses: actions/cache@v2
        with:
          path: ~/go/pkg/mod
          key: go-${{ hashFiles('**/go.sum') }}

      - name: Build for ECS e2e tests
        run: make -f builder.Makefile cli

      - name: create aws config folder
        run: mkdir -p ~/.aws

      - name: ECS e2e Test
        env:
          AWS_DEFAULT_REGION: us-west-2
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }}
        run: make e2e-ecs
