name: Docker Tests
on:
  push:
    branches:
      - '**'
    tags-ignore:
      - '**'
  # Triggers the workflow on labeled PRs only.
  pull_request_target:
    types: [labeled]
# Ensures that only the latest commit is running for each PR at a time.
concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.ref }}
  cancel-in-progress: true
jobs:
  Docker-tests:
    if: contains(github.event.pull_request.labels.*.name, 'safe to test') || github.event_name == 'push'
    name: ubuntu-latest
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
        with:
          ref: ${{ github.event.pull_request.head.sha }}

      - name: Setup Go with cache
        uses: jfrog/.github/actions/install-go-with-cache@main

      - name: Containerize Artifactory
        run: |
          cd ./testdata/docker/artifactory/
          ./start.sh
        env:
          RTLIC: ${{secrets.RTLIC}}
          GOPROXY: direct

      - name: Wait for Artifactory to finish loading
        uses: nev7n/wait_for_response@v1
        with:
          url: "http://localhost:8082"
          responseCode: 200
          timeout: 600000
          interval: 500

      - name: Run Docker tests
        run: go test -v -timeout 0 --test.docker