Skip to content

Commit 57fb78c

Browse files
committed
wip: end to end tests in github actions
1 parent 403e0fe commit 57fb78c

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

.github/workflows/pull_request.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,49 @@ jobs:
5151
run: |
5252
swift test
5353
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+
steps:
63+
- name: Checkout repository
64+
uses: actions/checkout@v4
65+
with:
66+
persist-credentials: false
67+
68+
- name: Mark the workspace as safe
69+
# https://github.com/actions/checkout/issues/766
70+
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}
71+
72+
- name: Install the static SDK
73+
run: |
74+
swift sdk install \
75+
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 \
76+
--checksum aa5515476a403797223fc2aad4ca0c3bf83995d5427fb297cab1d93c68cee075
77+
78+
- name: Build the example
79+
run: |
80+
cd Examples/HelloWorldHummingbird
81+
sed -i'.bak' -e '/swift-container-plugin/ s/(url:.*),/(path: "..\/.."),/' Package.swift
82+
swift package \
83+
--swift-sdk x86_64-swift-linux-musl \
84+
--allow-network-connections all \
85+
build-container-image \
86+
--repository localhost:5000/hummingbird \
87+
--from scratch
88+
89+
- name: Run the example
90+
run: |
91+
docker run -d --platform linux/amd64 -p 8080:8080 localhost:5000/hummingbird
92+
93+
- name: Check that the service is running
94+
run: |
95+
curl -v localhost:8080 | grep "Hello World"
96+
5497
swift-6-language-mode:
5598
name: Swift 6 Language Mode
5699
uses: apple/swift-nio/.github/workflows/swift_6_language_mode.yml@main

Examples/HelloWorldHummingbird/Package.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,4 @@ let package = Package(
2626
targets: [
2727
.executableTarget(name: "hello-world", dependencies: [.product(name: "Hummingbird", package: "hummingbird")])
2828
]
29-
3029
)

0 commit comments

Comments
 (0)