* test python3 * try use `python` instead of `python3` * use `update-version` everywhere * fix variable injection * fix python2vs3 * move `updateVersion.py` into action files
153 lines
5.2 KiB
YAML
153 lines
5.2 KiB
YAML
name: 'build Mac OS'
|
|
description: 'build Mac OS package'
|
|
inputs:
|
|
name:
|
|
required: true
|
|
description: "Version name"
|
|
icon:
|
|
required: true
|
|
description: "App icons (.icns)"
|
|
APPLE_API_ID:
|
|
required: true
|
|
description: "API key ID"
|
|
APPLE_API_ISSUER:
|
|
required: true
|
|
description: "API issuer ID"
|
|
APPLE_API_KEY:
|
|
required: true
|
|
description: "API key content"
|
|
APPLE_APP_IDENTIFIER:
|
|
required: true
|
|
description: "Bundle ID"
|
|
APPLE_KEYCHAIN_NAME:
|
|
required: true
|
|
description: "Temporary keychain name"
|
|
APPLE_KEYCHAIN_PWD:
|
|
required: true
|
|
description: "Temporary keychain password"
|
|
FASTLANE_MATCH_PWD:
|
|
required: true
|
|
description: "Fastlane Match description password"
|
|
FASTLANE_MATCH_TOKEN:
|
|
required: true
|
|
description: "Fastlane Match Github token"
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- uses: ./.github/actions/build-love
|
|
- name: Checkout template
|
|
uses: actions/checkout@v2
|
|
with:
|
|
repository: '26F-Studio/Techmino-macOS'
|
|
path: 'Techmino-macOS'
|
|
- name: Download ColdClear
|
|
uses: ./.github/actions/get-cc
|
|
with:
|
|
arch: macOS
|
|
- name: Fastlane match
|
|
uses: maierj/fastlane-action@v2.0.1
|
|
with:
|
|
lane: 'get_cert'
|
|
subdirectory: 'Techmino-macOS'
|
|
env:
|
|
API_ID: '${{ inputs.APPLE_API_ID }}'
|
|
API_ISSUER: '${{ inputs.APPLE_API_ISSUER }}'
|
|
API_KEY: '${{ inputs.APPLE_API_KEY }}'
|
|
APP_IDENTIFIER: '${{ inputs.APPLE_APP_IDENTIFIER }}'
|
|
KEYCHAIN_NAME: '${{ inputs.APPLE_KEYCHAIN_NAME }}'
|
|
KEYCHAIN_PWD: '${{ inputs.APPLE_KEYCHAIN_PWD }}'
|
|
MATCH_PASSWORD: '${{ inputs.FASTLANE_MATCH_PWD }}'
|
|
MATCH_TOKEN: '${{ inputs.FASTLANE_MATCH_TOKEN }}'
|
|
- name: Modify template
|
|
shell: python
|
|
run: |
|
|
import datetime
|
|
from io import open
|
|
thisYear = str(datetime.datetime.today().year)
|
|
with open('./.github/build/macOS/info.plist.template', 'r', encoding='utf-8') as file:
|
|
data = file.read()
|
|
data = data\
|
|
.replace('@versionName', '${{ inputs.name }}'[1:])\
|
|
.replace('@thisYear', thisYear)\
|
|
.replace('@bundleId', '${{ inputs.APPLE_APP_IDENTIFIER }}')
|
|
with open('./Techmino-macOS/Techmino.app/Contents/info.plist', 'w+', encoding='utf-8') as file:
|
|
file.write(data)
|
|
- name: Pack
|
|
shell: bash
|
|
run: |
|
|
mv Techmino.love Techmino-macOS/Techmino.app/Contents/Resources
|
|
mv CCloader.dylib Techmino-macOS/Techmino.app/Contents/Frameworks
|
|
mv ${{ inputs.icon }} Techmino-macOS/Techmino.app/Contents/Resources/iconfile.icns
|
|
|
|
chmod +x Techmino-macOS/Techmino.app/Contents/Frameworks/CCloader.dylib
|
|
chmod +x Techmino-macOS/Techmino.app/Contents/MacOS/love
|
|
- name: Codesign executable
|
|
shell: bash
|
|
run: |
|
|
security unlock-keychain -p ${{ inputs.TEMP_KEYCHAIN_PASSWORD }} \
|
|
~/Library/Keychains/${{ inputs.TEMP_KEYCHAIN_USER }}-db
|
|
|
|
[[ $(security find-identity) =~ ([0-9A-F]{40}) ]]
|
|
|
|
codesign --timestamp --force --strict --deep -v \
|
|
--options runtime \
|
|
-s ${BASH_REMATCH[1]} \
|
|
--entitlements Techmino-macOS/love.entitlements \
|
|
Techmino-macOS/Techmino.app
|
|
- name: Fastlane notarize
|
|
uses: maierj/fastlane-action@v2.0.1
|
|
with:
|
|
lane: 'make_safe'
|
|
subdirectory: 'Techmino-macOS'
|
|
env:
|
|
API_ID: '${{ inputs.APPLE_API_ID }}'
|
|
API_ISSUER: '${{ inputs.APPLE_API_ISSUER }}'
|
|
API_KEY: '${{ inputs.APPLE_API_KEY }}'
|
|
APP_IDENTIFIER: '${{ inputs.APPLE_APP_IDENTIFIER }}'
|
|
NOTARIZE_OBJECT: 'Techmino.app'
|
|
- name: Create DMG file
|
|
shell: bash
|
|
run: |
|
|
brew install create-dmg
|
|
create-dmg \
|
|
--volname "Techmino for MacOS" \
|
|
--volicon "./.github/build/macOS/Techminodisk.icns" \
|
|
--window-pos 200 120 \
|
|
--window-size 800 500 \
|
|
--icon-size 100 \
|
|
--icon "Techmino.app" 239 203 \
|
|
--background ".github/build/macOS/backgroundImage.tiff" \
|
|
--hide-extension "Techmino.app" \
|
|
--app-drop-link 565 203 \
|
|
"Techmino-macOS/Techmino-macOS.dmg" \
|
|
"Techmino-macOS/Techmino.app/"
|
|
- name: Codesign DMG
|
|
shell: bash
|
|
run: |
|
|
security unlock-keychain -p ${{ inputs.TEMP_KEYCHAIN_PASSWORD }} \
|
|
~/Library/Keychains/${{ inputs.TEMP_KEYCHAIN_USER }}-db
|
|
|
|
[[ $(security find-identity) =~ ([0-9A-F]{40}) ]]
|
|
|
|
codesign --timestamp --force --strict --deep -v \
|
|
--options runtime \
|
|
-s ${BASH_REMATCH[1]} \
|
|
--entitlements Techmino-macOS/love.entitlements \
|
|
Techmino-macOS/Techmino-macOS.dmg
|
|
- name: Fastlane notarize
|
|
uses: maierj/fastlane-action@v2.0.1
|
|
with:
|
|
lane: 'make_safe'
|
|
subdirectory: 'Techmino-macOS'
|
|
env:
|
|
API_ID: '${{ inputs.APPLE_API_ID }}'
|
|
API_ISSUER: '${{ inputs.APPLE_API_ISSUER }}'
|
|
API_KEY: '${{ inputs.APPLE_API_KEY }}'
|
|
APP_IDENTIFIER: '${{ inputs.APPLE_APP_IDENTIFIER }}'
|
|
NOTARIZE_OBJECT: 'Techmino-macOS.dmg'
|
|
- name: Finalize
|
|
shell: bash
|
|
run: |
|
|
mv Techmino-macOS/Techmino-macOS.dmg Techmino.dmg
|
|
spctl -a -t open --context context:primary-signature -vv Techmino.dmg
|