Skip to content

Commit

Permalink
Extend CI setup to build releases.
Browse files Browse the repository at this point in the history
  • Loading branch information
rsmmr committed Feb 3, 2024
1 parent a7486dd commit 8675a8e
Show file tree
Hide file tree
Showing 5 changed files with 92 additions and 8 deletions.
88 changes: 85 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,96 @@ name: CI pipeline
on: push

jobs:
build:
debug:
runs-on: macos-14

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Build code
run: make debug

release:
runs-on: macos-14
environment: release-macos

steps:
- uses: actions/checkout@v4

- 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 profile from secrets
echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_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
- name: Build code
run: make release

- name: Run check
run: make check
run: make check-release

- uses: actions/upload-artifact@v4
with:
name: qlview
path: build/Release/qlview

- name: Clean up keychain
if: ${{ always() }}
run: |
security delete-keychain $RUNNER_TEMP/app-signing.keychain-db
publish_release:
permissions:
contents: write

runs-on: macos-14
if: (startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, '-dev'))
needs: [release]

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive

- name: Prepare release message
run: |
cat CHANGES | awk '/^[0-9]+\./{ n++; next; } n < 2 { print }' >${{ runner.temp }}/release-msg
echo "release_name=$(echo ${{ github.ref_name }} | sed 's/^v//')" >> $GITHUB_ENV
- uses: actions/download-artifact@v4
with:
path: artifacts

- name: Display artifacts
run: ls -al artifacts/*/*

- name: Upload artifacts
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
draft: false
prerelease: false
name: ${{ env.release_name }}
body_path: ${{ runner.temp }}/release-msg
files: |
artifacts/*/*
6 changes: 4 additions & 2 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
0.1-3 | 2024-01-20 22:29:20 +0100
0.2 | 2024-02-03 21:21:52 +0100

* Extend CI setup to build releases.

* Polish code infrastructure.

Expand All @@ -9,7 +11,7 @@
open them in their corresponding applications first and print from
there.

* Remove unneccessary state.
* Remove unnecessary state.

0.1 | 2024-01-07 15:03:19 +0100

Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1-3
0.2
2 changes: 1 addition & 1 deletion qlview/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@
<key>CFBundleName</key>
<string>qlview</string>
<key>CFBundleVersion</key>
<string>0.1-3</string>
<string>0.2</string>
</dict>
</plist>

0 comments on commit 8675a8e

Please sign in to comment.