diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index a6f0af8..d6569dc 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -3,14 +3,60 @@ name: CI pipeline
on: push
jobs:
- build:
+ debug:
runs-on: macos-14
steps:
- uses: actions/checkout@v3
+ - name: Build code
+ run: make debug
+
+ release:
+ runs-on: macos-14
+ environment: release-macos
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Install the Apple certificate and provisioning profile
+ env:
+ BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
+ P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
+ BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }}
+ KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
+ run: |
+ # create variables
+ CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
+ PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision
+ KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
+
+ # import certificate and provisioning profile from secrets
+ # note: I don't think we actually need the provisioning profile currently
+ echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH
+ echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode -o $PP_PATH
+
+ # create temporary keychain
+ security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
+ security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
+ security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
+
+ # import certificate to keychain
+ security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
+ security list-keychain -d user -s $KEYCHAIN_PATH
+
+ # apply provisioning profile
+ mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
+ cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles
+
- name: Build code
run: make release
- name: Run check
- run: make check
+ run: make check-release
+
+ - name: Clean up keychain and provisioning profile
+ if: ${{ always() }}
+ run: |
+ security delete-keychain $RUNNER_TEMP/app-signing.keychain-db
+ rm ~/Library/MobileDevice/Provisioning\ Profiles/build_pp.mobileprovision
diff --git a/CHANGES b/CHANGES
index 0885808..47b915f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+0.1-4 | 2024-01-21 07:57:15 +0100
+
+ * Tweak CI.
+
0.1-3 | 2024-01-20 22:29:20 +0100
* Polish code infrastructure.
diff --git a/Makefile b/Makefile
index 2454208..19cb641 100644
--- a/Makefile
+++ b/Makefile
@@ -7,6 +7,6 @@ debug:
release:
@xcodebuild -quiet -target qlview-signed -configuration Release
-check:
+check-release:
codesign --verify --verbose build/Release/qlview
codesign --display --verbose=4 build/Release/qlview 2>&1 | grep Signed
diff --git a/VERSION b/VERSION
index 2eaed16..653402d 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.1-3
+0.1-4
diff --git a/qlview/Info.plist b/qlview/Info.plist
index 9ab382b..0269d45 100644
--- a/qlview/Info.plist
+++ b/qlview/Info.plist
@@ -9,6 +9,6 @@
CFBundleName
qlview
CFBundleVersion
- 0.1-3
+ 0.1-4