Skip to content

Commit 760681a

Browse files
[WASM] Add workflow_dispatch for manual distribution
1 parent 71aca37 commit 760681a

File tree

2 files changed

+79
-1
lines changed

2 files changed

+79
-1
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Manual distribution
2+
on:
3+
workflow_dispatch:
4+
inputs:
5+
channel:
6+
description: 'Release channel'
7+
required: true
8+
toolchain_name:
9+
description: 'Toolchain name'
10+
required: true
11+
display_name:
12+
description: 'Display name for Darwin toolchain'
13+
display_name_short:
14+
description: 'Short display name for Darwin toolchain'
15+
jobs:
16+
manual-distribution:
17+
runs-on: macos-latest
18+
steps:
19+
- uses: actions/checkout@v1
20+
- name: Setup keychain
21+
run: |
22+
echo "$DARWIN_TOOLCHAIN_APPLICATION_CERT_BASE64" | base64 --decode -o developerID_application.p12
23+
security import developerID_application.p12 -P "$DARWIN_TOOLCHAIN_APPLICATION_CERT_PASSWORD"
24+
echo "$DARWIN_TOOLCHAIN_INSTALLER_CERT_BASE64" | base64 --decode -o developerID_installer.p12
25+
security import developerID_installer.p12 -P "$DARWIN_TOOLCHAIN_INSTALLER_CERT_PASSWORD"
26+
env:
27+
DARWIN_TOOLCHAIN_APPLICATION_CERT: ${{ secrets.DARWIN_TOOLCHAIN_APPLICATION_CERT }}
28+
DARWIN_TOOLCHAIN_APPLICATION_CERT_BASE64: ${{ secrets.DARWIN_TOOLCHAIN_APPLICATION_CERT_BASE64 }}
29+
DARWIN_TOOLCHAIN_APPLICATION_CERT_PASSWORD: ${{ secrets.DARWIN_TOOLCHAIN_APPLICATION_CERT_PASSWORD }}
30+
DARWIN_TOOLCHAIN_INSTALLER_CERT: ${{ secrets.DARWIN_TOOLCHAIN_INSTALLER_CERT }}
31+
DARWIN_TOOLCHAIN_INSTALLER_CERT_BASE64: ${{ secrets.DARWIN_TOOLCHAIN_INSTALLER_CERT_BASE64 }}
32+
DARWIN_TOOLCHAIN_INSTALLER_CERT_PASSWORD: ${{ secrets.DARWIN_TOOLCHAIN_INSTALLER_CERT_PASSWORD }}
33+
- run: |
34+
case "${{ github.event.inputs.channel }}" in
35+
"DEVELOPMENT")
36+
./utils/webassembly/distribute-latest-toolchain.sh swiftwasm DEVELOPMENT "${{ github.event.inputs.toolchain_name }}"
37+
;;
38+
"5.3")
39+
./utils/webassembly/distribute-latest-toolchain.sh swiftwasm-release/5.3 5.3 "${{ github.event.inputs.toolchain_name }}"
40+
;;
41+
*)
42+
echo "Unrecognised release channel: ${{ github.event.inputs.channel }}"
43+
exit 1
44+
;;
45+
esac
46+
47+
env:
48+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
49+
DARWIN_TOOLCHAIN_APPLICATION_CERT: ${{ secrets.DARWIN_TOOLCHAIN_APPLICATION_CERT }}
50+
DARWIN_TOOLCHAIN_INSTALLER_CERT: ${{ secrets.DARWIN_TOOLCHAIN_INSTALLER_CERT }}
51+
DARWIN_TOOLCHAIN_NOTARIZE_EMAIL: ${{ secrets.DARWIN_TOOLCHAIN_NOTARIZE_EMAIL }}
52+
DARWIN_TOOLCHAIN_NOTARIZE_PASSWORD: ${{ secrets.DARWIN_TOOLCHAIN_NOTARIZE_PASSWORD }}
53+
DARWIN_TOOLCHAIN_DISPLAY_NAME: ${{ github.event.inputs.display_name }}
54+
DARWIN_TOOLCHAIN_DISPLAY_NAME_SHORT: ${{ github.event.inputs.display_name_short }}

utils/webassembly/distribute-latest-toolchain.sh

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,13 +175,37 @@ unzip ubuntu18.04-installable.zip
175175
unzip ubuntu20.04-installable.zip
176176
unzip macos-installable.zip
177177

178-
toolchain_name=$(basename $(tar tfz swift-wasm-$channel-SNAPSHOT-ubuntu18.04_x86_64.tar.gz | head -n1))
178+
original_toolchain_name=$(basename $(tar tfz swift-wasm-$channel-SNAPSHOT-ubuntu18.04_x86_64.tar.gz | head -n1))
179+
toolchain_name=${3:-$original_toolchain_name}
179180

180181
if is_released $toolchain_name; then
181182
echo "Latest toolchain $toolchain_name has been already released"
182183
exit 0
183184
fi
184185

186+
if [[ "$toolchain_name" != "$original_toolchain_name" ]]; then
187+
tar xfz swift-wasm-$channel-SNAPSHOT-ubuntu18.04_x86_64.tar.gz
188+
mv "$original_toolchain_name" "$toolchain_name"
189+
tar cfz swift-wasm-$channel-SNAPSHOT-ubuntu18.04_x86_64.tar.gz "$toolchain_name"
190+
rm -rf "$toolchain_name"
191+
192+
tar xfz swift-wasm-$channel-SNAPSHOT-ubuntu20.04_x86_64.tar.gz
193+
mv "$original_toolchain_name" "$toolchain_name"
194+
tar cfz swift-wasm-$channel-SNAPSHOT-ubuntu20.04_x86_64.tar.gz "$toolchain_name"
195+
rm -rf "$toolchain_name"
196+
197+
tar xfz swift-wasm-$channel-SNAPSHOT-macos_x86_64.tar.gz
198+
mv "$original_toolchain_name" "$toolchain_name"
199+
darwin_toolchain_info_plist="$toolchain_name/Info.plist"
200+
if [[ -n "${DARWIN_TOOLCHAIN_DISPLAY_NAME}" ]]; then
201+
/usr/libexec/PlistBuddy -c "Set DisplayName '${DARWIN_TOOLCHAIN_DISPLAY_NAME}'" "${darwin_toolchain_info_plist}"
202+
fi
203+
if [[ -n "${DARWIN_TOOLCHAIN_DISPLAY_NAME_SHORT}" ]]; then
204+
/usr/libexec/PlistBuddy -c "Set ShortDisplayName '${DARWIN_TOOLCHAIN_DISPLAY_NAME_SHORT}'" "${darwin_toolchain_info_plist}"
205+
fi
206+
tar cfz swift-wasm-$channel-SNAPSHOT-macos_x86_64.tar.gz "$toolchain_name"
207+
rm -rf "$toolchain_name"
208+
fi
185209

186210
mv swift-wasm-$channel-SNAPSHOT-ubuntu18.04_x86_64.tar.gz "$toolchain_name-ubuntu18.04_x86_64.tar.gz"
187211
mv swift-wasm-$channel-SNAPSHOT-ubuntu20.04_x86_64.tar.gz "$toolchain_name-ubuntu20.04_x86_64.tar.gz"

0 commit comments

Comments
 (0)