[ci] fix ci #1
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: IntegrationTests | ||
on: | ||
workflow_call: | ||
inputs: | ||
name: | ||
type: string | ||
description: "The name of the workflow used for the concurrency group." | ||
required: true | ||
# We pass the list of examples here, but we can't pass an array as argument | ||
# Instead, we pass a String with a valid JSON array. | ||
# The workaround is mentioned here https://github.com/orgs/community/discussions/11692 | ||
examples: | ||
type: string | ||
description: "The list of examples to run. Pass a String with a valid JSON array such as \"[ 'HelloWorld', 'APIGateway' ]\"" | ||
required: true | ||
default: "" | ||
examples_enabled: | ||
type: boolean | ||
description: "Boolean to enable the compilation of examples. Defaults to true." | ||
default: true | ||
archive_plugin_examples: | ||
type: string | ||
description: "The list of examples to run through the archive plugin test. Pass a String with a valid JSON array such as \"[ 'HelloWorld', 'APIGateway' ]\"" | ||
required: true | ||
default: "" | ||
archive_plugin_enabled: | ||
type: boolean | ||
description: "Boolean to enable the test of the archive plugin. Defaults to true." | ||
default: true | ||
check_foundation_enabled: | ||
type: boolean | ||
description: "Boolean to enable the check for Foundation dependency. Defaults to true." | ||
default: true | ||
matrix_linux_command: | ||
type: string | ||
description: "The command of the current Swift version linux matrix job to execute." | ||
required: true | ||
matrix_linux_swift_container_image: | ||
type: string | ||
description: "Container image for the matrix job. Defaults to matching latest Swift 6.2 Amazon Linux 2 image." | ||
default: "swift:6.2-amazonlinux2" | ||
matrix_linux_swift_container_image: | ||
type: string | ||
description: "Container image for the matrix job. Defaults to matching latest Swift 6.2 Amazon Linux 2 image." | ||
default: "swift:6.2-amazonlinux2" | ||
## We are cancelling previously triggered workflow runs | ||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }}-${{ inputs.name }} | ||
cancel-in-progress: true | ||
jobs: | ||
test-examples: | ||
name: Test Examples/${{ matrix.examples }} on ${{ matrix.swift.image }} | ||
if: ${{ inputs.examples_enabled }} | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
examples: ${{ fromJson(inputs.examples) }} | ||
# We are using only one Swift version | ||
swift: | ||
- image: ${{ inputs.matrix_linux_swift_container_image }} | ||
container: | ||
image: ${{ matrix.swift.image }} | ||
steps: | ||
# GitHub checkout action has a dep on NodeJS 20 which is not running on Amazonlinux2 | ||
# workaround is to manually checkout the repository | ||
# https://github.com/actions/checkout/issues/1487 | ||
- name: Manually Clone repository and checkout PR | ||
env: | ||
PR_NUMBER: ${{ github.event.pull_request.number }} | ||
run: | | ||
# Clone the repository | ||
git clone https://github.com/${{ github.repository }} | ||
cd ${{ github.event.repository.name }} | ||
# Fetch the pull request | ||
git fetch origin +refs/pull/$PR_NUMBER/merge: | ||
# Checkout the pull request | ||
git checkout -qf FETCH_HEAD | ||
# - name: Checkout repository | ||
# uses: actions/checkout@v4 | ||
# with: | ||
# persist-credentials: false | ||
- name: Mark the workspace as safe | ||
working-directory: ${{ github.event.repository.name }} # until we can use action/checkout@v4 | ||
# https://github.com/actions/checkout/issues/766 | ||
run: git config --global --add safe.directory ${GITHUB_WORKSPACE} | ||
- name: Run matrix job | ||
working-directory: ${{ github.event.repository.name }} # until we can use action/checkout@v4 | ||
env: | ||
COMMAND: ${{ inputs.matrix_linux_command }} | ||
EXAMPLE: ${{ matrix.examples }} | ||
run: | | ||
.github/workflows/scripts/integration_tests.sh | ||
test-archive-plugin: | ||
name: Test archive plugin | ||
if: ${{ inputs.archive_plugin_enabled }} | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
examples: ${{ fromJson(inputs.archive_plugin_examples) }} | ||
# We are using only one Swift version | ||
swift: | ||
- image: ${{ inputs.matrix_linux_swift_container_image }} | ||
container: | ||
image: ${{ matrix.swift.image }} | ||
steps: | ||
# GitHub checkout action has a dep on NodeJS 20 which is not running on Amazonlinux2 | ||
# workaround is to manually checkout the repository | ||
# https://github.com/actions/checkout/issues/1487 | ||
- name: Manually Clone repository and checkout PR | ||
env: | ||
PR_NUMBER: ${{ github.event.pull_request.number }} | ||
run: | | ||
# Clone the repository | ||
git clone https://github.com/${{ github.repository }} | ||
cd ${{ github.event.repository.name }} | ||
# Fetch the pull request | ||
git fetch origin +refs/pull/$PR_NUMBER/merge: | ||
# Checkout the pull request | ||
git checkout -qf FETCH_HEAD | ||
# - name: Checkout repository | ||
# uses: actions/checkout@v4 | ||
# with: | ||
# persist-credentials: false | ||
- name: Mark the workspace as safe | ||
# https://github.com/actions/checkout/issues/766 | ||
run: git config --global --add safe.directory ${GITHUB_WORKSPACE} | ||
- name: Test the archive plugin | ||
env: | ||
EXAMPLE: ${{ matrix.examples }} | ||
run: | | ||
.github/workflows/scripts/check-archive-plugin.sh | ||
check-foundation: | ||
name: No dependencies on Foundation | ||
if: ${{ inputs.check_foundation_enabled }} | ||
runs-on: ubuntu-latest | ||
container: | ||
image: ${{ inputs.matrix_linux_swift_container_image }} | ||
steps: | ||
# GitHub checkout action has a dep on NodeJS 20 which is not running on Amazonlinux2 | ||
# workaround is to manually checkout the repository | ||
# https://github.com/actions/checkout/issues/1487 | ||
- name: Manually Clone repository and checkout PR | ||
env: | ||
PR_NUMBER: ${{ github.event.pull_request.number }} | ||
run: | | ||
# Clone the repository | ||
git clone https://github.com/${{ github.repository }} | ||
cd ${{ github.event.repository.name }} | ||
# Fetch the pull request | ||
git fetch origin +refs/pull/$PR_NUMBER/merge: | ||
# Checkout the pull request | ||
git checkout -qf FETCH_HEAD | ||
# - name: Checkout repository | ||
# uses: actions/checkout@v4 | ||
# with: | ||
# persist-credentials: false | ||
- name: Mark the workspace as safe | ||
# https://github.com/actions/checkout/issues/766 | ||
run: git config --global --add safe.directory ${GITHUB_WORKSPACE} | ||
- name: Check for Foundation or ICU dependency | ||
run: | | ||
.github/workflows/scripts/check-link-foundation.sh |