name: Smoke tests

on:
  push:
    branches: ["main"]
  pull_request:
    branches: ["main"]

permissions:
  contents: read

jobs:
  smoke-test:
    strategy:
      matrix:
        test:
          - forced-language
          - git-clone
          - git-push
          - healthcheck
          - i18n
          - palemoon/amd64
          #- palemoon/i386
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        with:
          persist-credentials: false

      - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
        with:
          node-version: latest

      - uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
        with:
          go-version: stable

      - uses: ko-build/setup-ko@d006021bd0c28d1ce33a07e7943d48b079944c8d # v0.9

      - name: Install utils
        run: |
          go install ./utils/cmd/...

      - name: Run test
        run: |
          cd test/${{ matrix.test }}
          backoff-retry --try-count 10 ./test.sh

      - name: Sanitize artifact name
        if: always()
        run: echo "ARTIFACT_NAME=${{ matrix.test }}" | sed 's|/|-|g' >> $GITHUB_ENV

      - name: Upload artifact
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
        if: always()
        with:
          name: ${{ env.ARTIFACT_NAME }}
          path: test/${{ matrix.test }}/var
