Skip to content

Commit 21feb40

Browse files
committed
Add support for excluding the swift version and pre-build command
1 parent a41ca83 commit 21feb40

File tree

1 file changed

+23
-13
lines changed

1 file changed

+23
-13
lines changed
Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
1-
name: Swift Matrix
1+
name: Swift Linux Matrix
22

33
on:
44
workflow_call:
55
inputs:
6-
swift_versions:
6+
exclude_swift_versions:
77
type: string
8-
description: "Swift version list"
9-
default: ["5.8", "5.9", "5.10", "6.0", "nightly-main", "nightly-6.0"]
10-
required: true
8+
description: "Exclude Swift version list (JSON)"
9+
default: "[{\"swift_version\": \"\"}]"
1110
os_versions:
1211
type: string
13-
description: "OS version list"
14-
default: ["jammy"]
15-
required: true
12+
description: "OS version list (JSON)"
13+
default: "[\"jammy\"]"
1614
swift_flags:
1715
type: string
1816
description: "Swift flangs for release version"
@@ -21,16 +19,28 @@ on:
2119
type: string
2220
description: "Swift flangs for nightly version"
2321
default: ""
22+
pre_build_command:
23+
type: string
24+
description: "Command to execute before building the Swift package"
25+
default: ""
2426

2527
jobs:
2628
build:
2729
name: Linux (${{ matrix.swift_version }} - ${{ matrix.os_version }})
2830
runs-on: ubuntu-latest
2931
strategy:
32+
fail-fast: false
3033
matrix:
31-
swift_version: ${{ inputs.swift_versions }}
32-
os_version: ${{ inputs.os_versions }}
33-
container: ${{ (contains(matrix.swift_version, 'nightly') && 'swiftlang/swift') || 'swift' }}:${{ matrix.swift_version }}
34+
swift_version: ['5.8', '5.9', '5.10', '6.0', 'nightly-main', 'nightly-6.0']
35+
os_version: ${{ fromJson(inputs.os_versions) }}
36+
exclude:
37+
- ${{ fromJson(inputs.exclude_swift_versions) }}
38+
container:
39+
image: ${{ (contains(matrix.swift_version, 'nightly') && 'swiftlang/swift') || 'swift' }}:${{ matrix.swift_version }}-${{ matrix.os_version }}
3440
steps:
35-
- uses: actions/checkout@v2
36-
- run: swift test ${{ (contains(matrix.swift_version, 'nightly') && inputs.swift_nightly_flags) || inputs.swift_flags }}
41+
- name: Checkout repository
42+
uses: actions/checkout@v4
43+
- name: Pre-build
44+
run: ${{ inputs.pre_build_command }}
45+
- name: Build Swift Package
46+
run: swift test ${{ (contains(matrix.swift_version, 'nightly') && inputs.swift_nightly_flags) || inputs.swift_flags }}

0 commit comments

Comments
 (0)