name: Integration Tests # See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows on: push: paths-ignore: - "__tests__/**" - ".github/**" - "!.github/workflows/test-integration.ya?ml" - "**.md" - ".gitignore" - "LICENSE" pull_request: paths-ignore: - "__tests__/**" - ".github/**" - "!.github/workflows/test-integration.ya?ml" - "**.md" - ".gitignore" - "LICENSE" schedule: # Run every Tuesday at 8 AM UTC to catch breakage caused by external changes. - cron: "0 8 * * TUE" workflow_dispatch: repository_dispatch: jobs: defaults: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v5 - name: Run action with defaults uses: ./ # Use the action from the local path. - name: Run Task # Verify that Task was installed run: task --version version: name: version (${{ matrix.version.input }}, ${{ matrix.runs-on }}) runs-on: ${{ matrix.runs-on }} strategy: fail-fast: false matrix: runs-on: - ubuntu-latest - windows-latest - macos-latest version: - input: 2.x expected: "Task version: 2.8.1" - input: 3.36.x expected: "Task version: v3.36.0 (h1:XVJ5hQ5hdzTAulHpAGzbUMUuYr9MUOEQFOFazI3hUsY=)" - input: 3.37.2 expected: "Task version: v3.37.2 (h1:Jwgvo+2vX79Fu+44xPxVKC5DIkUE89QeDjN2tmYaQzA=)" exclude: # The macos-latest runner is an Apple Silicon machine, but Task 2.x is only available for x86 on macOS, which # would cause a spurious test failure: "Unexpected HTTP response: 404" - runs-on: macos-latest version: input: 2.x expected: "Task version: 2.8.1" steps: - name: Checkout repository uses: actions/checkout@v5 - name: Run action with version input set to ${{ matrix.version.input }} uses: ./ with: version: ${{ matrix.version.input }} repo-token: ${{ github.token }} - name: Check Task version shell: bash run: | [[ "$(task --version)" == "${{ matrix.version.expected }}" ]] invalid-version: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v5 - name: Run action, using invalid version id: setup-task continue-on-error: true uses: ./ with: version: 2.42.x - name: Fail the job if the action run succeeded if: steps.setup-task.outcome == 'success' run: | echo "::error::The action run was expected to fail, but passed!" exit 1