File tree Expand file tree Collapse file tree 2 files changed +60
-0
lines changed Expand file tree Collapse file tree 2 files changed +60
-0
lines changed Original file line number Diff line number Diff line change 34
34
REGISTRY_PORT : 5000
35
35
run : |
36
36
swift test
37
+
38
+ plugin-streaming-output-test :
39
+ name : Plugin streaming output test
40
+ runs-on : ubuntu-latest
41
+ services :
42
+ registry :
43
+ image : registry:2
44
+ ports :
45
+ - 5000:5000
46
+ steps :
47
+ - name : Checkout repository
48
+ uses : actions/checkout@v4
49
+ with :
50
+ persist-credentials : false
51
+
52
+ - name : Mark the workspace as safe
53
+ # https://github.com/actions/checkout/issues/766
54
+ run : git config --global --add safe.directory ${GITHUB_WORKSPACE}
55
+
56
+ - name : Check plugin streaming output is reassembled and printed properly
57
+ run : |
58
+ scripts/test-plugin-output-streaming.sh
Original file line number Diff line number Diff line change
1
+ #! /usr/bin/env bash
2
+
3
+ # Test that error output streamed from containertool is printed correctly by the plugin.
4
+
5
+ set -exo pipefail
6
+
7
+ log () { printf -- " ** %s\n" " $* " >&2 ; }
8
+ error () { printf -- " ** ERROR: %s\n" " $* " >&2 ; }
9
+ fatal () { error " $@ " ; exit 1; }
10
+
11
+ # Work in a temporary directory, deleted after the test finishes
12
+ PKGPATH=$( mktemp -d)
13
+ cleanup () {
14
+ log " Deleting temporary package $PKGPATH "
15
+ rm -rf " $PKGPATH "
16
+ }
17
+ trap cleanup EXIT
18
+
19
+ swift package --package-path " $PKGPATH " init --type executable --name hello
20
+ cat >> " $PKGPATH /Package.swift" << EOF
21
+ package.dependencies += [
22
+ .package(path: "$PWD "),
23
+ ]
24
+ EOF
25
+
26
+ # Run the plugin, forgetting a mandatory argument. Verify that the output is not corrupted.
27
+ # The `swift package` command will return a nonzero exit code. This is expected, so disable pipefail.
28
+ set +o pipefail
29
+ swift package --package-path " $PKGPATH " --allow-network-connections all build-container-image 2>&1 | tee " $PKGPATH /output"
30
+ set -o pipefail
31
+
32
+ grep -F -x -e " error: Missing expected argument '--repository <repository>'" \
33
+ -e " error: Help: --repository <repository> Repository path" \
34
+ -e " error: Usage: containertool [<options>] --repository <repository> <executable>" \
35
+ -e " error: See 'containertool --help' for more information." " $PKGPATH /output"
36
+
37
+ echo Plugin error output: PASSED
38
+
You can’t perform that action at this time.
0 commit comments