33 push :
44 tags :
55 - ' v*.*.*'
6+ workflow_dispatch :
7+ inputs :
8+ version :
9+ description : ' Version number (e.g., 1.0.0)'
10+ required : true
11+ type : string
612
713jobs :
814 mac :
@@ -22,22 +28,42 @@ jobs:
2228 - name : Install dependencies
2329 run : npm ci
2430
25- - name : Set version from tag
31+ - name : Determine version variables
2632 env :
2733 GITHUB_REF : ${{ github.ref }}
28- run : npm version "${GITHUB_REF#refs/tags/v}" --no-git-tag-version --allow-same-version
34+ VERSION_INPUT : ${{ github.event.inputs.version }}
35+ run : |
36+ if [ -n "$VERSION_INPUT" ]; then
37+ # Manual trigger with version input
38+ VERSION="$VERSION_INPUT"
39+ else
40+ # Tag trigger
41+ VERSION="${GITHUB_REF#refs/tags/v}"
42+ fi
43+ VERSION_WITHOUT_PRERELEASE=$(echo "$VERSION" | sed 's/-.*//')
44+
45+ echo "VERSION=$VERSION" >> $GITHUB_ENV
46+ echo "VERSION_WITHOUT_PRERELEASE=$VERSION_WITHOUT_PRERELEASE" >> $GITHUB_ENV
47+
48+ echo "Determined VERSION: $VERSION"
49+ echo "Determined VERSION_WITHOUT_PRERELEASE: $VERSION_WITHOUT_PRERELEASE"
50+
51+ - name : Set version from tag or input
52+ run : npm version "$VERSION" --no-git-tag-version --allow-same-version
2953
3054 - name : Build
3155 run : npm run build
3256
3357 - name : Install Apple Code Signing Certificate
3458 env :
35- MAC_INSTALLER_CERTIFICATE_BASE64 : ${{ secrets.APPLE_3RD_PARTY_INSTALLER_SIGNING_CERTIFICATE_BASE64 }}
36- MAC_DEVELOPMENT_CERTIFICATE_BASE64 : ${{ secrets.APPLE_3RD_PARTY_SIGNING_CERTIFICATE_BASE64 }}
37- MAC_APP_CERTIFICATE_BASE64 : ${{ secrets.APPLE_SIGNING_CERTIFICATE_BASE64 }}
38- MAC_INSTALLER_CERTIFICATE_PATH : ${{ runner.temp }}/mac_installer_certificate.p12
39- MAC_DEVELOPMENT_CERTIFICATE_PATH : ${{ runner.temp }}/mac_development_certificate.p12
40- MAC_APP_CERTIFICATE_PATH : ${{ runner.temp }}/mac_app_certificate.p12
59+ MAC_INSTALLER_CERTIFICATE_BASE64 : ${{ secrets.MAC_INSTALLER_CERTIFICATE_BASE64 }}
60+ MAC_DEVELOPMENT_CERTIFICATE_BASE64 : ${{ secrets.MAC_DEVELOPMENT_CERTIFICATE_BASE64 }}
61+ MAC_APP_CERTIFICATE_BASE64 : ${{ secrets.MAC_APP_CERTIFICATE_BASE64 }}
62+
63+ MAC_INSTALLER_CERTIFICATE_PATH : ${{ runner.temp }}/mac_installer_certificate.cer
64+ MAC_DEVELOPMENT_CERTIFICATE_PATH : ${{ runner.temp }}/mac_development_certificate.cer
65+ MAC_APP_CERTIFICATE_PATH : ${{ runner.temp }}/mac_app_certificate.cer
66+
4167 KEYCHAIN_PATH : ${{ runner.temp }}/app-signing.keychain-db
4268 KEYCHAIN_PASSWORD : ${{ secrets.KEYCHAIN_PASSWORD }}
4369 run : |
5480 security import $MAC_APP_CERTIFICATE_PATH -A -t cert -k $KEYCHAIN_PATH
5581 security list-keychain -d user -s $KEYCHAIN_PATH
5682
57- - name : Install Apple Code Signing Certificate
83+ - name : Install Apple API key
5884 env :
5985 APPLE_API_KEY_ID : ${{ secrets.APPLE_API_KEY_ID }}
6086 APPLE_API_KEY : ${{ secrets.APPLE_API_KEY }}
@@ -78,31 +104,39 @@ jobs:
78104 GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
79105 run : npm run package:mac:publish
80106
81- - name : Set version from tag (without pre-release)
82- env :
83- GITHUB_REF : ${{ github.ref }}
84- run : |
85- VERSION=$(echo "${GITHUB_REF#refs/tags/v}" | sed 's/-.*//')
86- npm version "$VERSION" --no-git-tag-version --allow-same-version
107+ - name : Set version from tag or input (without pre-release)
108+ run : npm version "$VERSION_WITHOUT_PRERELEASE" --no-git-tag-version --allow-same-version
87109
88110 - name : Package (Mac App Store)
89111 env :
90112 GITHUB_RUN_NUMBER : ${{ github.run_number }}
91- run : npm run package:mac:store
113+ run : |
114+ echo "Packaging for Mac App Store..."
115+ npm run package:mac:store
92116
93- - name : Publish to App Store Connect
117+ - name : Submit to App Store Connect
94118 continue-on-error : true
95119 env :
96120 APPLE_API_ISSUER : ${{ secrets.APPLE_API_ISSUER }}
97121 APPLE_API_KEY_ID : ${{ secrets.APPLE_API_KEY_ID }}
98- GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
99122 run : |
123+ echo "Submitting to App Store Connect..."
124+
125+ PKG_FILE=$(find dist -name "*.pkg" -type f | head -1)
126+ if [[ -z "$PKG_FILE" ]]; then
127+ echo "Error: No .pkg file found in dist directory"
128+ exit 1
129+ fi
130+
131+ echo "Found package: $PKG_FILE"
132+
100133 xcrun altool \
101- --notarize -app \
102- --file path/to/your/package.pkg \
134+ --upload -app \
135+ --file "$PKG_FILE" \
103136 --apiKey "$APPLE_API_KEY_ID" \
104137 --apiIssuer "$APPLE_API_ISSUER" \
105- --output-format xml
138+ --output-format xml \
139+ --verbose
106140
107141 - name : Upload artifacts
108142 uses : actions/upload-artifact@v4
0 commit comments