diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6a58274..365741e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -56,6 +56,9 @@ jobs: rust-version: '1.70.0' setup-swift: true swift-version: '5.7' + setup-task: true + task-version: '3.50.0' + task-retries: '3' - name: Verify Setup run: | @@ -329,3 +332,29 @@ jobs: echo "Swift Toolchain: ${{ steps.test-setup-swift.outputs.swift-toolchain }}" echo "Swift SDKs: ${{ steps.test-setup-swift.outputs.swift-sdks }}" swift --version + + test-setup-task: + name: Test Setup Task Action + runs-on: ubuntu-latest + steps: + - name: Harden Runner + id: harden-runner + uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1 + with: + egress-policy: audit + + - name: Checkout Repository + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: Run Setup Task Action + uses: ./ + id: test-setup-task + with: + checkout-token: ${{ secrets.GITHUB_TOKEN }} + setup-task: true + task-version: '3.50.0' + task-retries: '3' + + - name: Verify Task Installation + run: | + task --version diff --git a/README.md b/README.md index 64c1909..24e670d 100644 --- a/README.md +++ b/README.md @@ -100,6 +100,15 @@ Common steps for initializing a job for GitHub actions. This composite action co | swift-prefer-oss-toolchain | Whether to prefer Swift open source toolchain over Xcode | No | false | | swift-sdks | Semi-colon separated list of Swift SDKs to install | No | - | +**Task** + +| Input | Description | Required | Default | +|----------------|----------------------------------------------------------|----------|---------| +| setup-task | Whether to setup Task | No | - | +| task-version | Task version to use | No | 3.50.0 | +| task-retries | Number of retries to set up task | No | 3 | +| checkout-token | Personal access token (PAT) used to fetch the repository | No | - | + ### Outputs **Checkout Outputs** diff --git a/action.yml b/action.yml index fba31f3..d5d82ea 100644 --- a/action.yml +++ b/action.yml @@ -10,7 +10,7 @@ inputs: description: 'The branch, tag or SHA to checkout' required: false checkout-token: - description: 'Personal access token (PAT) used to fetch the repository' + description: 'Personal access token (PAT) used to fetch the repository and set up task' required: false checkout-fetch-depth: description: 'Depth of commit history to fetch' @@ -116,6 +116,18 @@ inputs: swift-sdks: description: 'Semi-colon separated list of Swift SDKs to install along with the main toolchain.' required: false + setup-task: + description: 'Whether to setup Task' + required: false + default: 'false' + task-version: + description: 'Task version to use' + required: false + default: '3.50.0' + task-retries: + description: 'Number of retries for Task setup in case of failure, default is 3.' + required: false + default: '3' # expose outputs from the sub-actions outputs: @@ -361,6 +373,26 @@ runs: prefer-oss-toolchain: ${{ inputs.swift-prefer-oss-toolchain == 'true' }} sdks: ${{ inputs.swift-sdks || '' }} + - name: Set Up Task Parameters + id: setup-task-params + if: ${{ inputs.setup-task == 'true' }} + shell: bash + run: | + echo "::group::Setting up Task" + echo "Version: ${{ inputs.task-version }}" + echo "Repo Token Provided: ${{ inputs.checkout-token != '' }}" + echo "Task Max Retries: ${{ inputs.task-retries }}" + echo "::endgroup::" + + - name: Setup Task + id: setup-task + if: ${{ inputs.setup-task == 'true' }} + uses: go-task/setup-task@3be4020d41929789a01026e0e427a4321ce0ad44 # v3.50.0 + with: + version: ${{ inputs.task-version }} + repo-token: ${{ inputs.checkout-token }} + max-retries: ${{ inputs.task-retries }} + branding: icon: 'arrow-up-right' color: 'green'