-
Notifications
You must be signed in to change notification settings - Fork 0
64 lines (53 loc) · 1.83 KB
/
Copy pathrelease.yml
File metadata and controls
64 lines (53 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
name: Release FuseGenerator
on:
workflow_dispatch:
push:
tags:
- "fuse-generator-*"
permissions:
contents: write
jobs:
release:
runs-on: macos-latest
steps:
- name: Check out source
uses: actions/checkout@v6
with:
submodules: recursive
- name: Build Release bundle
run: |
xcodebuild \
-project FuseGenerator.xcodeproj \
-scheme FuseGenerator \
-configuration Release \
-derivedDataPath "$RUNNER_TEMP/DerivedData" \
build
- name: Package release artifact
env:
TAG_NAME: ${{ github.ref_name }}
run: |
PRODUCT_DIR="$RUNNER_TEMP/DerivedData/Build/Products/Release"
BUNDLE_NAME="FuseGenerator.qlgenerator"
VERSION_SUFFIX="${TAG_NAME#fuse-generator-}"
ARCHIVE_NAME="FuseGenerator-${VERSION_SUFFIX}.qlgenerator.zip"
test -d "$PRODUCT_DIR/$BUNDLE_NAME"
mkdir -p dist
ditto -c -k --sequesterRsrc --keepParent \
"$PRODUCT_DIR/$BUNDLE_NAME" \
"dist/$ARCHIVE_NAME"
CHECKSUM="$(shasum -a 256 "dist/$ARCHIVE_NAME" | cut -d ' ' -f 1)"
printf '%s' "$CHECKSUM" > dist/checksum.txt
{
printf 'SHA-256: `%s`\n' "$CHECKSUM"
} > dist/release-notes.md
- name: Create or update GitHub release
env:
GH_TOKEN: ${{ github.token }}
TAG_NAME: ${{ github.ref_name }}
run: |
if gh release view "$TAG_NAME" >/dev/null 2>&1; then
gh release upload "$TAG_NAME" dist/*.zip --clobber
gh release edit "$TAG_NAME" --title "$TAG_NAME" --notes-file dist/release-notes.md
else
gh release create "$TAG_NAME" dist/*.zip --title "$TAG_NAME" --notes-file dist/release-notes.md
fi