Update CI

Co-authored-by: scdhh <51957264+shoucandanghehe@users.noreply.github.com>
This commit is contained in:
MrZ626
2021-08-21 01:15:14 +08:00
parent 9fe045b916
commit 8671b52cbb
5 changed files with 194 additions and 92 deletions

View File

@@ -63,7 +63,7 @@ jobs:
python .\.github\workflows\updateVersion.py -T Windows -N ${{ env.Version }}
cmd /c '.\ResourceHacker.exe -open .\love-11.3-win64\Techmino.exe -save .\love-11.3-win64\Techmino.exe -action delete -mask ICONGROUP,,'
cmd /c '.\ResourceHacker.exe -open .\Techmino.rc -save .\Techmino.res -action compile'
cmd /c '.\ResourceHacker.exe -open .\love-11.3-win64\Techmino.exe -save .\love-11.3-win64\Techmino.exe -action addoverwrite -res ".\build\Windows\icon.ico" -mask ICONGROUP,1,'
cmd /c '.\ResourceHacker.exe -open .\love-11.3-win64\Techmino.exe -save .\love-11.3-win64\Techmino.exe -action addoverwrite -res ".\build\Windows\icon_snapshot.ico" -mask ICONGROUP,1,'
cmd /c '.\ResourceHacker.exe -open .\love-11.3-win64\Techmino.exe -save .\love-11.3-win64\Techmino.exe -action addoverwrite -res ".\Techmino.res" -mask VERSIONINFO,1,'
- name: Upload
uses: actions/upload-artifact@v2
@@ -131,11 +131,14 @@ jobs:
name: Techmino_${{ env.Version }}_${{ GITHUB.RUN_NUMBER }}_${{ env.CommitID }}_Linux
path: Techmino.AppImage
#Android待更新
build-android:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '8'
- name: Install lua
run: |
sudo apt-get update -y
@@ -155,33 +158,53 @@ jobs:
- name: Update Version
run: |
python3 ./.github/workflows/updateVersion.py -T Version -H ${{ env.CommitID }}
- name: Download Apktool
run: curl -OL https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.5.0.jar
- name: Unpack and Repack
- name: Clone love-android
run: |
curl -OL https://github.com/26F-Studio/Techmino/releases/download/v0.15.1/Techmino.apk
java -jar ./apktool_2.5.0.jar d -s -o apk ./Techmino.apk
7z x ./apk/assets/game.love libAndroid -o.
rm -rf ./apk/assets/game.love ./Techmino.apk
7z a -tzip ./apk/assets/game.love ./document ./libAndroid ./media ./parts ./Zframework ./conf.lua ./font.ttf ./main.lua ./version.lua
python3 ./.github/workflows/updateVersion.py -T Android -C $(lua ./.github/workflows/getVersion.lua -code) -N ${{ env.Version }}
java -jar ./apktool_2.5.0.jar b -o apk ./Techmino.apk
- uses: 26F-Studio/sign-android-release@master
name: Sign APK
id: sign_app
with:
releaseDirectory: ./Techmino.apk
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
env:
BUILD_TOOLS_VERSION: "30.0.2"
git clone --recurse-submodules https://github.com/26F-Studio/love-android
cd ./love-android
git checkout --recurse-submodules CI
- name: Download androidSDK
run: |
wget -O commandlinetools.zip https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip
- name: Unpack androidSDK
run: |
unzip ./commandlinetools.zip
- name: Install SDK NDK
run: |
yes | ./cmdline-tools/bin/sdkmanager --sdk_root=. --install "platforms;android-30"
yes | ./cmdline-tools/bin/sdkmanager --sdk_root=. --install "ndk;21.3.6528147"
export ANDROID_HOME=$(pwd)
- name: Download ColdClear
run: |
curl -OL https://github.com/26F-Studio/cold_clear_ai_love2d_wrapper/releases/download/latest/android_aarch64.zip
curl -OL https://github.com/26F-Studio/cold_clear_ai_love2d_wrapper/releases/download/latest/android_armv7.zip
- name: Unpack ColdClear
run: |
7z x ./android_aarch64.zip -oColdClear/android_aarch64
7z x ./android_armv7.zip -oColdClear/android_armv7
- name: Pack Techmino
run: |
mkdir -p ./love-android/app/src/main/assets
mkdir -p ./love-android/app/libs/arm64-v8a
mkdir -p ./love-android/app/libs/armeabi-v7a
mv ./ColdClear/android_aarch64/love-11.3-android/lib/arm64-v8a/libcold_clear.so ./love-android/app/libs/arm64-v8a
mv ./ColdClear/android_armv7/love-11.3-android/lib/armeabi-v7a/libcold_clear.so ./love-android/app/libs/armeabi-v7a
mkdir -p ./libAndroid/arm64-v8a
mkdir -p ./libAndroid/armeabi-v7a
mv ./ColdClear/android_aarch64/libs/arm64-v8a/libCCloader.so ./libAndroid/arm64-v8a
mv ./ColdClear/android_armv7/libs/armeabi-v7a/libCCloader.so ./libAndroid/armeabi-v7a
7z a -tzip ./love-android/app/src/main/assets/game.love ./document ./media ./parts ./Zframework ./libAndroid ./conf.lua ./font.ttf ./main.lua ./version.lua
echo "${{ secrets.SIGNING_KEY }}" | base64 -d > ./love-android/app/android.keystore
python3 ./.github/workflows/updateVersion.py -T AndroidSnapshot -C $(lua ./.github/workflows/getVersion.lua -code) -N ${{ env.Version }} -S ${{ secrets.KEY_STORE_PASSWORD }} -A ${{ secrets.ALIAS }} -K ${{ secrets.KEY_PASSWORD }}
chmod 777 ./love-android/gradlew
cd ./love-android/
./gradlew assembleRelease
mv ./app/build/outputs/apk/release/app-release.apk ./app/build/outputs/apk/release/Techmino_Snapshot.apk
- name: Upload
uses: actions/upload-artifact@v2
with:
name: Techmino_${{ env.Version }}_${{ GITHUB.RUN_NUMBER }}_${{ env.CommitID }}_Android
path: ${{steps.sign_app.outputs.signedReleaseFile}}
path: ./love-android/app/build/outputs/apk/release/Techmino_Snapshot.apk
build-macOS:
runs-on: macos-10.15
@@ -221,6 +244,8 @@ jobs:
run: |
python3 ./.github/workflows/updateVersion.py -T macOS -N ${{ env.Version }}
mv ./Techmino.love ./Techmino.app/Contents/Resources
rm -rf ./Techmino.app/Contents/Resources/iconfile.icns
mv ./build/macOS/icon_snapshot.icns ./Techmino.app/Contents/Resources/iconfile.icns
- name: Codesign executable
# In secrets:
# - MACOS_CERTIFICATE: the *.p12 Developer ID Certificate, encoded in base64

View File

@@ -191,11 +191,14 @@ jobs:
name: ${{ env.Title }}
files: Techmino.a${{ env.Version }}.AppImage
#Android待更新
build-android:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '8'
- name: Install lua
run: |
sudo apt-get update -y
@@ -212,39 +215,62 @@ jobs:
run: |
Title=$(lua ./.github/workflows/getVersion.lua -updateTitle)
echo "Title=${Title}" >> $GITHUB_ENV
- name: Download Apktool
run: curl -OL https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.5.0.jar
- name: Unpack and Repack
- name: Clone love-android
run: |
curl -OL https://github.com/26F-Studio/Techmino/releases/download/v0.15.1/Techmino.apk
java -jar ./apktool_2.5.0.jar d -s -o apk ./Techmino.apk
7z x ./apk/assets/game.love libAndroid -o.
rm -rf ./apk/assets/game.love ./Techmino.apk
7z a -tzip ./apk/assets/game.love ./document ./libAndroid ./media ./parts ./Zframework ./conf.lua ./font.ttf ./main.lua ./version.lua
python3 ./.github/workflows/updateVersion.py -T Android -C $(lua ./.github/workflows/getVersion.lua -code) -N $(lua ./.github/workflows/getVersion.lua -name)
java -jar ./apktool_2.5.0.jar b -o apk ./Techmino.a${{ env.Version }}.apk
- uses: 26F-Studio/sign-android-release@master
name: Sign APK
id: sign_app
with:
releaseDirectory: ./Techmino.a${{ env.Version }}.apk
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
env:
BUILD_TOOLS_VERSION: "30.0.2"
git clone --recurse-submodules https://github.com/26F-Studio/love-android
cd ./love-android
git checkout --recurse-submodules CI
- name: Download androidSDK
run: |
wget -O commandlinetools.zip https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip
- name: Unpack androidSDK
run: |
unzip ./commandlinetools.zip
- name: Install SDK NDK
run: |
yes | ./cmdline-tools/bin/sdkmanager --sdk_root=. --install "platforms;android-30"
yes | ./cmdline-tools/bin/sdkmanager --sdk_root=. --install "ndk;21.3.6528147"
export ANDROID_HOME=$(pwd)
- name: Download ColdClear
run: |
curl -OL https://github.com/26F-Studio/cold_clear_ai_love2d_wrapper/releases/download/latest/android_aarch64.zip
curl -OL https://github.com/26F-Studio/cold_clear_ai_love2d_wrapper/releases/download/latest/android_armv7.zip
- name: Unpack ColdClear
run: |
7z x ./android_aarch64.zip -oColdClear/android_aarch64
7z x ./android_armv7.zip -oColdClear/android_armv7
- name: Pack Techmino
run: |
mkdir -p ./love-android/app/src/main/assets
mkdir -p ./love-android/app/libs/arm64-v8a
mkdir -p ./love-android/app/libs/armeabi-v7a
mv ./ColdClear/android_aarch64/love-11.3-android/lib/arm64-v8a/libcold_clear.so ./love-android/app/libs/arm64-v8a
mv ./ColdClear/android_armv7/love-11.3-android/lib/armeabi-v7a/libcold_clear.so ./love-android/app/libs/armeabi-v7a
mkdir -p ./libAndroid/arm64-v8a
mkdir -p ./libAndroid/armeabi-v7a
mv ./ColdClear/android_aarch64/libs/arm64-v8a/libCCloader.so ./libAndroid/arm64-v8a
mv ./ColdClear/android_armv7/libs/armeabi-v7a/libCCloader.so ./libAndroid/armeabi-v7a
7z a -tzip ./love-android/app/src/main/assets/game.love ./document ./media ./parts ./Zframework ./libAndroid ./conf.lua ./font.ttf ./main.lua ./version.lua
echo "${{ secrets.SIGNING_KEY }}" | base64 -d > ./love-android/app/android.keystore
python3 ./.github/workflows/updateVersion.py -T AndroidRelease -C $(lua ./.github/workflows/getVersion.lua -code) -N $(lua ./.github/workflows/getVersion.lua -name) -S ${{ secrets.KEY_STORE_PASSWORD }} -A ${{ secrets.ALIAS }} -K ${{ secrets.KEY_PASSWORD }}
chmod 777 ./love-android/gradlew
cd ./love-android/
./gradlew assembleRelease
mv ./app/build/outputs/apk/release/app-release.apk ./app/build/outputs/apk/release/Techmino.a${{ env.Version }}.apk
- name: Release
uses: softprops/action-gh-release@v1
with:
name: ${{ env.Title }}
files: ${{steps.sign_app.outputs.signedReleaseFile}}
files: ./love-android/app/build/outputs/apk/release/Techmino.a${{ env.Version }}.apk
#Android-mini待更新
build-android-mini:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '8'
- name: Install lua
run: |
sudo apt-get update -y
@@ -261,34 +287,54 @@ jobs:
run: |
Title=$(lua ./.github/workflows/getVersion.lua -updateTitle)
echo "Title=${Title}" >> $GITHUB_ENV
- name: Download Apktool
run: curl -OL https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.5.0.jar
- name: Unpack and Repack
- name: Clone love-android
run: |
curl -OL https://github.com/26F-Studio/Techmino/releases/download/v0.15.1/Techmino.apk
java -jar ./apktool_2.5.0.jar d -s -o apk ./Techmino.apk
7z x ./apk/assets/game.love libAndroid -o.
rm -rf ./apk/assets/game.love ./Techmino.apk
git clone --recurse-submodules https://github.com/26F-Studio/love-android
cd ./love-android
git checkout --recurse-submodules CI
- name: Download androidSDK
run: |
wget -O commandlinetools.zip https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip
- name: Unpack androidSDK
run: |
unzip ./commandlinetools.zip
- name: Install SDK NDK
run: |
yes | ./cmdline-tools/bin/sdkmanager --sdk_root=. --install "platforms;android-30"
yes | ./cmdline-tools/bin/sdkmanager --sdk_root=. --install "ndk;21.3.6528147"
export ANDROID_HOME=$(pwd)
- name: Download ColdClear
run: |
curl -OL https://github.com/26F-Studio/cold_clear_ai_love2d_wrapper/releases/download/latest/android_aarch64.zip
curl -OL https://github.com/26F-Studio/cold_clear_ai_love2d_wrapper/releases/download/latest/android_armv7.zip
- name: Unpack ColdClear
run: |
7z x ./android_aarch64.zip -oColdClear/android_aarch64
7z x ./android_armv7.zip -oColdClear/android_armv7
- name: Pack Techmino
run: |
mkdir -p ./love-android/app/src/main/assets
mkdir -p ./love-android/app/libs/arm64-v8a
mkdir -p ./love-android/app/libs/armeabi-v7a
mv ./ColdClear/android_aarch64/love-11.3-android/lib/arm64-v8a/libcold_clear.so ./love-android/app/libs/arm64-v8a
mv ./ColdClear/android_armv7/love-11.3-android/lib/armeabi-v7a/libcold_clear.so ./love-android/app/libs/armeabi-v7a
mkdir -p ./libAndroid/arm64-v8a
mkdir -p ./libAndroid/armeabi-v7a
mv ./ColdClear/android_aarch64/libs/arm64-v8a/libCCloader.so ./libAndroid/arm64-v8a
mv ./ColdClear/android_armv7/libs/armeabi-v7a/libCCloader.so ./libAndroid/armeabi-v7a
rm -rf ./media/BGM ./media/SFX ./media/VOICE
7z a -tzip ./apk/assets/game.love ./document ./libAndroid ./media ./parts ./Zframework ./conf.lua ./font.ttf ./main.lua ./version.lua
python3 ./.github/workflows/updateVersion.py -T Android -C $(lua ./.github/workflows/getVersion.lua -code) -N $(lua ./.github/workflows/getVersion.lua -name)
java -jar ./apktool_2.5.0.jar b -o apk ./Techmino.a${{ env.Version }}.mini.apk
- uses: 26F-Studio/sign-android-release@master
name: Sign APK
id: sign_app
with:
releaseDirectory: ./Techmino.a${{ env.Version }}.mini.apk
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
env:
BUILD_TOOLS_VERSION: "30.0.2"
7z a -tzip ./love-android/app/src/main/assets/game.love ./document ./media ./parts ./Zframework ./libAndroid ./conf.lua ./font.ttf ./main.lua ./version.lua
echo "${{ secrets.SIGNING_KEY }}" | base64 -d > ./love-android/app/android.keystore
python3 ./.github/workflows/updateVersion.py -T AndroidRelease -C $(lua ./.github/workflows/getVersion.lua -code) -N $(lua ./.github/workflows/getVersion.lua -name) -S ${{ secrets.KEY_STORE_PASSWORD }} -A ${{ secrets.ALIAS }} -K ${{ secrets.KEY_PASSWORD }}
chmod 777 ./love-android/gradlew
cd ./love-android/
./gradlew assembleRelease
mv ./app/build/outputs/apk/release/app-release.apk ./app/build/outputs/apk/release/Techmino.a${{ env.Version }}.mini.apk
- name: Release
uses: softprops/action-gh-release@v1
with:
name: ${{ env.Title }}
files: ${{steps.sign_app.outputs.signedReleaseFile}}
files: ./love-android/app/build/outputs/apk/release/Techmino.a${{ env.Version }}.mini.apk
build-macOS:
runs-on: macos-10.15
@@ -368,6 +414,7 @@ jobs:
- name: Get ReleaseTitle
run: |
Title=$(lua ./.github/workflows/getVersion.lua -updateTitle)
echo "Title=${Title}" >> $GITHUB_ENV
- name: Pack Techmino
run: |
7z a -tzip ./Techmino.a${{ env.Version }}.love ./document ./media ./parts ./Zframework ./conf.lua ./font.ttf ./main.lua ./version.lua
@@ -388,14 +435,13 @@ jobs:
sudo apt-get install lua5.3 -y
- name: Get ReleaseTitle
run: |
Title=lua ./.github/workflows/getVersion.lua -updateTitle
Title=$(lua ./.github/workflows/getVersion.lua -updateTitle)
echo "Title=${Title}" >> $GITHUB_ENV
- name: Get ReleaseNote
run: |
Note=lua ./.github/workflows/getVersion.lua -updateNote
echo "Note=${Note}" >> $GITHUB_ENV
lua ./.github/workflows/getVersion.lua -updateNote > updateNote.txt
- name: Release
uses: softprops/action-gh-release@v1
with:
name: ${{ env.Title }}
body: ${{ env.Note }}
body_path: ./updateNote.txt

View File

@@ -14,7 +14,6 @@ def updateVersion(args): #更新版本号
data = file.read()
if args.Hash != False:
data = data.replace('@DEV', f'@{args.Hash[0:4]}')
updateConf()
else:
data = data.replace('@DEV', '')
file.seek(0)
@@ -24,25 +23,52 @@ def updateVersion(args): #更新版本号
def updateMacOS(args): #更新macOS打包信息
import datetime
with open('./build/macOS/info.plist.template', 'r', encoding='utf-8') as template:
template = ((template.read()).replace('@versionName', args.Name)).replace('@ThisYear', str(datetime.datetime.today().year))
with open('./Techmino.app/Contents/info.plist', 'w+', encoding='utf-8') as file:
file.write(template)
thisYear = str(datetime.datetime.today().year)
with open('./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 updateWindows(args): #更新Windows打包信息
Version = (args.Name).replace('V', '')
FileVersion = (f"{Version.replace('.', ',')},0")
with open('./build/Windows/Techmino.rc.template', 'r', encoding='utf8') as templace:
template = ((templace.read()).replace('@FileVersion', FileVersion)).replace('@Version', Version)
with open('Techmino.rc', 'w+', encoding='utf8') as file:
file.write(template)
def updateAndroid(args): #更新Android打包信息
import re
with open('./apk/apktool.yml', 'r+', encoding='utf-8') as file:
with open('./build/Windows/Techmino.rc.template', 'r', encoding='utf8') as file:
data = file.read()
data = re.sub("versionCode:.+", f"versionCode: '{args.Code}'", data)
data = re.sub("versionName:.+", f"versionName: '{args.Name}'", data)
data = data\
.replace('@FileVersion', FileVersion)\
.replace('@Version', Version)
with open('Techmino.rc', 'w+', encoding='utf8') as file:
file.write(data)
def updateAndroid(args, edition): #更新Android打包信息
if edition == 'Release':
appName = 'Techmino'
packageName = 'org.love2d.MrZ.Techmino'
edition = 'release'
elif edition == 'Snapshot':
appName = 'Techmino_Snapshot'
packageName = 'org.love2d.MrZ.Techmino.Snapshot'
edition = 'snapshot'
with open('./love-android/app/src/main/AndroidManifest.xml', "r+", encoding='utf-8') as file:
data = file.read()
data = data\
.replace('@appName', appName)\
.replace('@edition', edition)
file.seek(0)
file.truncate()
file.write(data)
with open("./love-android/app/build.gradle", "r+", encoding='utf-8') as file:
data = file.read()
data = data\
.replace('@packageName', packageName)\
.replace('@versionCode', args.Code)\
.replace('@versionName', args.Name)\
.replace('@storePassword', args.Store)\
.replace('@keyAlias', args.Alias)\
.replace('@keyPassword', args.Key)
file.seek(0)
file.truncate()
file.write(data)
@@ -53,6 +79,9 @@ if __name__ == '__main__':
parser.add_argument('-H', '--Hash', type=str, default = False, help = 'Github提交Hash')
parser.add_argument('-C', '--Code', type=str, default = False, help = 'versionCode')
parser.add_argument('-N', '--Name', type=str, default = False, help = 'versionName')
parser.add_argument('-S', '--Store', type=str, default = False, help = 'storePassword')
parser.add_argument('-A', '--Alias', type=str, default = False, help = 'keyAlias')
parser.add_argument('-K', '--Key', type=str, default = False, help = 'keyPassword')
args = parser.parse_args()
if args.Type == 'Conf':
updateConf()
@@ -62,5 +91,7 @@ if __name__ == '__main__':
updateWindows(args)
elif args.Type == 'macOS':
updateMacOS(args)
elif args.Type == 'Android':
updateAndroid(args)
elif args.Type == 'AndroidRelease':
updateAndroid(args, 'Release')
elif args.Type == 'AndroidSnapshot':
updateAndroid(args, 'Snapshot')