tests: Build and run examples as end to end tests #102
Workflow file for this run
This file contains 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: PR | ||
on: | ||
pull_request: | ||
types: [opened, reopened, synchronize] | ||
jobs: | ||
soundness: | ||
name: Soundness | ||
uses: swiftlang/github-workflows/.github/workflows/soundness.yml@main | ||
with: | ||
api_breakage_check_container_image: "swift:6.0-noble" | ||
docs_check_container_image: "swift:6.0-noble" | ||
license_header_check_project_name: "SwiftContainerPlugin" | ||
shell_check_container_image: "swift:6.0-noble" | ||
unit-tests: | ||
name: Unit tests | ||
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main | ||
with: | ||
linux_5_9_enabled: false | ||
linux_5_10_enabled: false | ||
linux_6_0_arguments_override: "--skip SmokeTests" | ||
linux_nightly_6_0_arguments_override: "--skip SmokeTests" | ||
linux_nightly_main_arguments_override: "--skip SmokeTests" | ||
integration-tests: | ||
name: Integration tests | ||
runs-on: ubuntu-latest | ||
services: | ||
registry: | ||
image: registry:2 | ||
ports: | ||
- 5000:5000 | ||
container: | ||
image: swift:6.0-noble | ||
steps: | ||
- 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: Run test job | ||
env: | ||
REGISTRY_HOST: registry | ||
REGISTRY_PORT: 5000 | ||
run: | | ||
swift test | ||
endtoend-tests: | ||
name: End to end tests | ||
runs-on: ubuntu-latest | ||
services: | ||
registry: | ||
image: registry:2 | ||
ports: | ||
- 5000:5000 | ||
strategy: | ||
matrix: | ||
example: | ||
- HelloWorldVapor | ||
- HelloWorldHummingbird | ||
steps: | ||
- 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: Install the static SDK | ||
run: | | ||
swift sdk install \ | ||
https://download.swift.org/swift-6.0.2-release/static-sdk/swift-6.0.2-RELEASE/swift-6.0.2-RELEASE_static-linux-0.0.1.artifactbundle.tar.gz \ | ||
--checksum aa5515476a403797223fc2aad4ca0c3bf83995d5427fb297cab1d93c68cee075 | ||
- name: Build the example | ||
run: | | ||
Check failure on line 84 in .github/workflows/pull_request.yml GitHub Actions / PRInvalid workflow file
|
||
cd Examples/${{ matrix.example }} | ||
sed -i'.bak' -e '/swift-container-plugin/ s/(url:.*),/(path: "..\/.."),/' Package.swift | ||
swift package \ | ||
--swift-sdk x86_64-swift-linux-musl \ | ||
--allow-network-connections all \ | ||
build-container-image \ | ||
--repository localhost:5000/${{ lower(matrix.example) }} \ | ||
--from scratch | ||
- name: Run the example | ||
run: | | ||
docker run -d --platform linux/amd64 -p 8080:8080 localhost:5000/${{ lower(matrix.example) }} | ||
- name: Check that the service is running | ||
run: | | ||
curl -v localhost:8080 | grep "Hello World" | ||
swift-6-language-mode: | ||
name: Swift 6 Language Mode | ||
uses: apple/swift-nio/.github/workflows/swift_6_language_mode.yml@main |