|
51 | 51 | run: | |
52 | 52 | swift test |
53 | 53 |
|
| 54 | + endtoend-tests: |
| 55 | + name: End to end tests |
| 56 | + runs-on: ubuntu-latest |
| 57 | + services: |
| 58 | + registry: |
| 59 | + image: registry:2 |
| 60 | + ports: |
| 61 | + - 5000:5000 |
| 62 | + strategy: |
| 63 | + matrix: |
| 64 | + example: |
| 65 | + - Examples/HelloWorldVapor |
| 66 | + - Examples/HelloWorldHummingbird |
| 67 | + steps: |
| 68 | + - name: Checkout repository |
| 69 | + uses: actions/checkout@v4 |
| 70 | + with: |
| 71 | + persist-credentials: false |
| 72 | + |
| 73 | + - name: Mark the workspace as safe |
| 74 | + # https://github.com/actions/checkout/issues/766 |
| 75 | + run: git config --global --add safe.directory ${GITHUB_WORKSPACE} |
| 76 | + |
| 77 | + - name: Install the static SDK |
| 78 | + run: | |
| 79 | + swift sdk install \ |
| 80 | + 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 \ |
| 81 | + --checksum aa5515476a403797223fc2aad4ca0c3bf83995d5427fb297cab1d93c68cee075 |
| 82 | +
|
| 83 | + - name: Build the example |
| 84 | + run: | |
| 85 | + sed -i'.bak' -e "/swift-container-plugin/ s@(url:.*),@(path: \"$PWD\"),@" ${{ matrix.example }}/Package.swift # Use plugin from this checkout |
| 86 | + cat ${{ matrix.example }}/Package.swift |
| 87 | + swift package \ |
| 88 | + --package-path ${{ matrix.example }} \ |
| 89 | + --swift-sdk x86_64-swift-linux-musl \ |
| 90 | + --allow-network-connections all \ |
| 91 | + build-container-image \ |
| 92 | + --repository localhost:5000/example \ |
| 93 | + --from scratch |
| 94 | +
|
| 95 | + - name: Run the example |
| 96 | + run: | |
| 97 | + docker run -d --platform linux/amd64 -p 8080:8080 localhost:5000/example |
| 98 | +
|
| 99 | + - name: Check that the service is running |
| 100 | + run: | |
| 101 | + curl -v localhost:8080 | grep "Hello World" |
| 102 | +
|
54 | 103 | swift-6-language-mode: |
55 | 104 | name: Swift 6 Language Mode |
56 | 105 | uses: apple/swift-nio/.github/workflows/swift_6_language_mode.yml@main |
0 commit comments