name: Test Integration on: pull_request: branches: - '*' paths-ignore: - 'docs/**' - '**.md' - 'script/gcg/**' env: GO_VERSION: '1.24' CGO_ENABLED: 0 jobs: build: runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 with: fetch-depth: 0 - name: Set up Go ${{ env.GO_VERSION }} uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.6.0 with: go-version: ${{ env.GO_VERSION }} check-latest: true - name: Avoid generating webui run: | touch webui/static/index.html - name: Build binary run: make binary-linux-amd64 - name: Save go cache build uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: path: | ~/.cache/go-build key: ${{ runner.os }}-go-build-cache-${{ env.GO_VERSION }}-${{ hashFiles('**/go.sum') }} - name: Artifact traefik binary uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: traefik path: ./dist/linux/amd64/traefik retention-days: 1 test-integration: runs-on: ubuntu-latest needs: - build strategy: fail-fast: true matrix: parallel: [12] index: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] steps: - name: Check out code uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 with: fetch-depth: 0 - name: Set up Go ${{ env.GO_VERSION }} uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.6.0 with: go-version: ${{ env.GO_VERSION }} check-latest: true - name: Download traefik binary uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: name: traefik path: ./dist/linux/amd64/ - name: Make binary executable run: chmod +x ./dist/linux/amd64/traefik - name: Restore go cache build uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: path: | ~/.cache/go-build key: ${{ runner.os }}-go-build-cache-${{ env.GO_VERSION }}-${{ hashFiles('**/go.sum') }} - name: Generate go test Slice id: test_split uses: hashicorp-forge/go-test-split-action@720a77701f0d1b2973126510492a6aad11ed0d5a # v2.0.0 with: packages: ./integration total: ${{ matrix.parallel }} index: ${{ matrix.index }} - name: Run Integration tests run: | TESTS=$(echo "${{ steps.test_split.outputs.run}}" | sed 's/\$/\$\$/g') TESTFLAGS="-run \"${TESTS}\"" make test-integration