Follow up macOS CI
- Update macOS CI to use flatlane - Test macOS - Use Github tokens - Pass MATCH_PASSWORD - Fix wrong path - Update keychain file - Change keychain path - Update macOS release - Triggered on release, not main - Try notarize macOS app - Triggered on test branch - Triggered by release - Rename lane names to avoid infinite recurse - Init dev workflow - Triggered by tags - Rename workflow name - Update workflows - Allow all tags - Fix on - Add codesign options - Add missing = - Update options - Test sign - Fix options - Update macOS template - Use identifier - Fix minor issues - Try not notarize - try not sign package - Try sign without runtime option - Try notarize without runtime option - Use entitlements - Add back runtime option - Pack the whole directory to see what happened - Chmod +x love - Try with strict and print app info - Change step order - Break into two step Zip first with `ditto`. Push back zipping Don't check the `zip` file Stop zipping it over and over and over and over Try zipping right
This commit is contained in:
committed by
Trebor-Huang
parent
0ff2e6e273
commit
c9d74a4cdf
@@ -1,10 +1,10 @@
|
||||
name: Techmino CI
|
||||
name: Techmino Develop CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, ci* ]
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main, ci* ]
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
get-info:
|
||||
@@ -99,11 +99,17 @@ jobs:
|
||||
commit: ${{ needs.get-info.outputs.commit }}
|
||||
- uses: ./.github/actions/build-macos
|
||||
with:
|
||||
name: ${{ needs.get-info.outputs.name }}
|
||||
name: '${{ needs.get-info.outputs.name }}'
|
||||
type: 'dev'
|
||||
icon: .github/build/macOS/icon_snapshot.icns
|
||||
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
|
||||
MACOS_CERTIFICATE_ID: ${{ secrets.MACOS_CERTIFICATE_ID }}
|
||||
MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }}
|
||||
DEVELOPER_APP_IDENTIFIER: '${{ secrets.APP_IDENTIFIER_DEV }}'
|
||||
MATCH_PASSWORD: '${{ secrets.MATCH_PASSWORD }}'
|
||||
GIT_AUTHORIZATION: '${{ secrets.GIT_AUTHORIZATION }}'
|
||||
TEMP_KEYCHAIN_PASSWORD: '${{ secrets.TEMP_KEYCHAIN_PASSWORD }}'
|
||||
TEMP_KEYCHAIN_USER: '${{ secrets.TEMP_KEYCHAIN_USER }}'
|
||||
APPLE_KEY_ID: '${{ secrets.APPLE_KEY_ID }}'
|
||||
APPLE_ISSUER_ID: '${{ secrets.APPLE_ISSUER_ID }}'
|
||||
APPLE_KEY_CONTENT: '${{ secrets.APPLE_KEY_CONTENT }}'
|
||||
- name: Pack Techmino
|
||||
run: |
|
||||
zip -r -y Techmino.zip Techmino.app
|
||||
15
.github/workflows/release.yml
vendored
15
.github/workflows/release.yml
vendored
@@ -3,10 +3,11 @@ name: Techmino Release CI
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
get-info:
|
||||
if: startWith(github.event.base_ref, 'ref/heads/pre')
|
||||
runs-on: ubuntu-20.04
|
||||
outputs:
|
||||
name: ${{ steps.actual-get-info.outputs.name }}
|
||||
@@ -156,10 +157,16 @@ jobs:
|
||||
- uses: ./.github/actions/build-macos
|
||||
with:
|
||||
name: ${{ needs.get-info.outputs.name }}
|
||||
type: 'release'
|
||||
icon: .github/build/macOS/icon.icns
|
||||
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
|
||||
MACOS_CERTIFICATE_ID: ${{ secrets.MACOS_CERTIFICATE_ID }}
|
||||
MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }}
|
||||
DEVELOPER_APP_IDENTIFIER: '${{ secrets.APP_IDENTIFIER_RELEASE }}'
|
||||
MATCH_PASSWORD: '${{ secrets.MATCH_PASSWORD }}'
|
||||
GIT_AUTHORIZATION: '${{ secrets.GIT_AUTHORIZATION }}'
|
||||
TEMP_KEYCHAIN_PASSWORD: '${{ secrets.TEMP_KEYCHAIN_PASSWORD }}'
|
||||
TEMP_KEYCHAIN_USER: '${{ secrets.TEMP_KEYCHAIN_USER }}'
|
||||
APPLE_KEY_ID: '${{ secrets.APPLE_KEY_ID }}'
|
||||
APPLE_ISSUER_ID: '${{ secrets.APPLE_ISSUER_ID }}'
|
||||
APPLE_KEY_CONTENT: '${{ secrets.APPLE_KEY_CONTENT }}'
|
||||
- name: Pack Techmino
|
||||
run: |
|
||||
cp ".github/build/macOS/打不开?Can’t open the App?.pdf" ./
|
||||
|
||||
148
.github/workflows/test.yml
vendored
Normal file
148
.github/workflows/test.yml
vendored
Normal file
@@ -0,0 +1,148 @@
|
||||
name: Techmino Test CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ pre*, ci* ]
|
||||
pull_request:
|
||||
branches: [ pre*, ci* ]
|
||||
|
||||
jobs:
|
||||
get-info:
|
||||
runs-on: ubuntu-20.04
|
||||
outputs:
|
||||
name: ${{ steps.actual-get-info.outputs.name }}
|
||||
apkCode: ${{ steps.actual-get-info.outputs.apkCode }}
|
||||
code: ${{ steps.actual-get-info.outputs.code }}
|
||||
commit: ${{ steps.actual-get-info.outputs.commit }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Install lua
|
||||
run: |
|
||||
sudo apt-get install lua5.3 -y
|
||||
- name: Get Version
|
||||
id: actual-get-info
|
||||
run: |
|
||||
echo "::set-output name=name::$(lua .github/workflows/getVersion.lua -name)"
|
||||
echo "::set-output name=apkCode::$(lua .github/workflows/getVersion.lua -apkCode)"
|
||||
echo "::set-output name=code::$(lua .github/workflows/getVersion.lua -code)"
|
||||
echo "::set-output name=commit::$(git rev-parse --short ${{ GITHUB.SHA }})"
|
||||
|
||||
# build-windows:
|
||||
# runs-on: windows-latest
|
||||
# needs: get-info
|
||||
# steps:
|
||||
# - uses: actions/checkout@v2
|
||||
# - uses: ./.github/actions/snapshot-update
|
||||
# with:
|
||||
# commit: ${{ needs.get-info.outputs.commit }}
|
||||
# - uses: ./.github/actions/build-windows
|
||||
# with:
|
||||
# love-url: https://github.com/love2d/love/releases/download/11.3/love-11.3-win64.zip
|
||||
# love-dir: love-11.3-win64
|
||||
# arch: win64
|
||||
# version: ${{ needs.get-info.outputs.name }}
|
||||
# icon: .\.github\build\Windows\icon_snapshot.ico
|
||||
# - name: Upload
|
||||
# uses: actions/upload-artifact@v2
|
||||
# with:
|
||||
# name: Techmino_${{ needs.get-info.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-info.outputs.commit }}_Windows
|
||||
# path: love
|
||||
|
||||
# build-linux:
|
||||
# runs-on: ubuntu-20.04
|
||||
# needs: get-info
|
||||
# steps:
|
||||
# - uses: actions/checkout@v2
|
||||
# - uses: ./.github/actions/snapshot-update
|
||||
# with:
|
||||
# commit: ${{ needs.get-info.outputs.commit }}
|
||||
# - uses: ./.github/actions/build-linux
|
||||
# with:
|
||||
# icon: .github/build/Linux/icon_snapshot.png
|
||||
# - name: Upload
|
||||
# uses: actions/upload-artifact@v2
|
||||
# with:
|
||||
# name: Techmino_${{ needs.get-info.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-info.outputs.commit }}_Linux
|
||||
# path: Techmino.AppImage
|
||||
|
||||
# build-android:
|
||||
# runs-on: ubuntu-20.04
|
||||
# needs: get-info
|
||||
# steps:
|
||||
# - uses: actions/checkout@v2
|
||||
# - uses: ./.github/actions/snapshot-update
|
||||
# with:
|
||||
# commit: ${{ needs.get-info.outputs.commit }}
|
||||
# - uses: ./.github/actions/build-android
|
||||
# with:
|
||||
# type: Snapshot
|
||||
# apkCode: ${{ needs.get-info.outputs.apkCode }}
|
||||
# name: ${{ needs.get-info.outputs.name }}
|
||||
# file-path: Techmino_Snapshot.apk
|
||||
# SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
|
||||
# KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
|
||||
# ALIAS: ${{ secrets.ALIAS }}
|
||||
# KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
||||
# - name: Upload
|
||||
# uses: actions/upload-artifact@v2
|
||||
# with:
|
||||
# name: Techmino_${{ needs.get-info.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-info.outputs.commit }}_Android
|
||||
# path: Techmino_Snapshot.apk
|
||||
|
||||
build-macOS:
|
||||
runs-on: macos-10.15
|
||||
needs: get-info
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/snapshot-update
|
||||
with:
|
||||
commit: ${{ needs.get-info.outputs.commit }}
|
||||
- uses: ./.github/actions/build-macos
|
||||
with:
|
||||
name: '${{ needs.get-info.outputs.name }}'
|
||||
type: 'dev'
|
||||
icon: .github/build/macOS/icon_snapshot.icns
|
||||
DEVELOPER_APP_IDENTIFIER: '${{ secrets.APP_IDENTIFIER_DEV }}'
|
||||
MATCH_PASSWORD: '${{ secrets.MATCH_PASSWORD }}'
|
||||
GIT_AUTHORIZATION: '${{ secrets.GIT_AUTHORIZATION }}'
|
||||
TEMP_KEYCHAIN_PASSWORD: '${{ secrets.TEMP_KEYCHAIN_PASSWORD }}'
|
||||
TEMP_KEYCHAIN_USER: '${{ secrets.TEMP_KEYCHAIN_USER }}'
|
||||
APPLE_KEY_ID: '${{ secrets.APPLE_KEY_ID }}'
|
||||
APPLE_ISSUER_ID: '${{ secrets.APPLE_ISSUER_ID }}'
|
||||
APPLE_KEY_CONTENT: '${{ secrets.APPLE_KEY_CONTENT }}'
|
||||
- name: Upload
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: Techmino_${{ needs.get-info.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-info.outputs.commit }}_macOS
|
||||
path: Techmino.zip
|
||||
|
||||
# build-iOS:
|
||||
# runs-on: macos-latest
|
||||
# needs: get-info
|
||||
# steps:
|
||||
# - uses: actions/checkout@v2
|
||||
# - uses: ./.github/actions/snapshot-update
|
||||
# with:
|
||||
# commit: ${{ needs.get-info.outputs.commit }}
|
||||
# - uses: ./.github/actions/build-ios
|
||||
# with:
|
||||
# name: ${{ needs.get-info.outputs.name }}
|
||||
# type: 'test'
|
||||
# DEVELOPER_APP_ID: '${{ secrets.APP_ID_DEV }}'
|
||||
# DEVELOPER_APP_IDENTIFIER: '${{ secrets.APP_IDENTIFIER_DEV }}'
|
||||
# FASTLANE_APPLE_ID: '${{ secrets.FASTLANE_APPLE_ID }}'
|
||||
# MATCH_PASSWORD: '${{ secrets.MATCH_PASSWORD }}'
|
||||
# GIT_AUTHORIZATION: '${{ secrets.GIT_AUTHORIZATION }}'
|
||||
# PROVISIONING_PROFILE_SPECIFIER: '${{ secrets.PROVISIONING_PROFILE_SPECIFIER_DEV }}'
|
||||
# TEMP_KEYCHAIN_PASSWORD: '${{ secrets.TEMP_KEYCHAIN_PASSWORD }}'
|
||||
# TEMP_KEYCHAIN_USER: '${{ secrets.TEMP_KEYCHAIN_USER }}'
|
||||
# APPLE_KEY_ID: '${{ secrets.APPLE_KEY_ID }}'
|
||||
# APPLE_ISSUER_ID: '${{ secrets.APPLE_ISSUER_ID }}'
|
||||
# APPLE_KEY_CONTENT: '${{ secrets.APPLE_KEY_CONTENT }}'
|
||||
# PROJECT_BUILD_NUMBER: '${{ needs.get-info.outputs.code }}.${{ github.run_number }}'
|
||||
# PILOT_CHANGE_LOG: '${{ github.event.commits[0].message }}'
|
||||
# - name: Upload
|
||||
# uses: actions/upload-artifact@v2
|
||||
# with:
|
||||
# name: Techmino_${{ needs.get-info.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-info.outputs.commit }}_iOS
|
||||
# path: "Techmino.ipa"
|
||||
25
.github/workflows/updateVersion.py
vendored
25
.github/workflows/updateVersion.py
vendored
@@ -22,23 +22,16 @@ def updateVersion(args): #更新版本号
|
||||
file.flush()
|
||||
file.write(data)
|
||||
|
||||
def updateMacOS(args): #更新macOS打包信息
|
||||
def updateMacOS(args, type): #更新macOS打包信息
|
||||
import datetime
|
||||
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', args.Name)\
|
||||
.replace('@thisYear', thisYear)
|
||||
with open('./Techmino.app/Contents/info.plist', 'w+', encoding='utf-8') as file:
|
||||
file.write(data)
|
||||
|
||||
def updateIOS(args): #更新iOS打包信息
|
||||
with open('./Techmino-iOS/platform/xcode/Techmino.xcodeproj/project.pbxproj', 'r') as file:
|
||||
data = file.read()
|
||||
data = data.replace('__VERSION__', re.search(r'([0-9]+\.[0-9]+\.[0-9]+)', args.Name, re.I).group(1))
|
||||
|
||||
with open('./Techmino-iOS/platform/xcode/Techmino.xcodeproj/project.pbxproj', 'w') as file:
|
||||
.replace('@versionName', args.Name[1:])\
|
||||
.replace('@thisYear', thisYear)\
|
||||
.replace('@buildType', type)
|
||||
with open('./Techmino-macOS/Techmino.app/Contents/info.plist', 'w+', encoding='utf-8') as file:
|
||||
file.write(data)
|
||||
|
||||
def updateWindows(args): #更新Windows打包信息
|
||||
@@ -98,10 +91,10 @@ if __name__ == '__main__':
|
||||
updateVersion(args)
|
||||
elif args.Type == 'Windows':
|
||||
updateWindows(args)
|
||||
elif args.Type == 'macOS':
|
||||
updateMacOS(args)
|
||||
elif args.Type == 'iOS':
|
||||
updateIOS(args)
|
||||
elif args.Type == 'macOS_release':
|
||||
updateMacOS(args, 'release')
|
||||
elif args.Type == 'macOS_dev':
|
||||
updateMacOS(args, 'dev')
|
||||
elif args.Type == 'AndroidRelease':
|
||||
updateAndroid(args, 'Release')
|
||||
elif args.Type == 'AndroidSnapshot':
|
||||
|
||||
Reference in New Issue
Block a user