163 lines
6.3 KiB
YAML
163 lines
6.3 KiB
YAML
name: Techmino CI
|
||
|
||
on:
|
||
push:
|
||
branches: [ main, ci ]
|
||
|
||
jobs:
|
||
build-windows:
|
||
runs-on: windows-latest
|
||
steps:
|
||
- uses: actions/checkout@v2
|
||
- name: GetCommitID
|
||
#这里找不到好办法用git获取CommitID,就直接截取了
|
||
#如果有好办法的话欢迎pr(
|
||
#之前尝试用的:
|
||
#for /F %%i in ('git rev-parse --short "${{ GITHUB.SHA }}"') do (set CommitID=%%i)
|
||
#失败原因:
|
||
#直接powershell运行报错,使用bat运行会获取不到${{ GITHUB.SHA }}
|
||
run: |
|
||
$CommitID="${{ GITHUB.SHA }}".Substring(0,7)
|
||
echo $CommitID > test.txt
|
||
echo "CommitID=$CommitID"
|
||
echo "CommitID=$CommitID" >> $env:GITHUB_ENV
|
||
- name: GetVersion
|
||
run: |
|
||
.\.github\workflows\getVersion.bat
|
||
- name: Download love
|
||
run: |
|
||
curl -OL https://github.com/love2d/love/releases/download/11.3/love-11.3-win64.zip
|
||
7z x love-11.3-win64.zip
|
||
- name: Download ColdClear
|
||
run: |
|
||
curl -OL https://github.com/26F-Studio/cold_clear_ai_love2d_wrapper/releases/download/20210520/win64.zip
|
||
7z x win64.zip -ocoldclear
|
||
move coldclear\cold_clear.dll love-11.3-win64
|
||
move coldclear\CCloader.dll love-11.3-win64
|
||
- name: Pack Techmino
|
||
shell: cmd
|
||
run: |
|
||
7z a -tzip game.love document media parts Zframework conf.lua font.ttf main.lua
|
||
copy /b love-11.3-win64\love.exe + game.love love-11.3-win64\Techmino.exe
|
||
del love-11.3-win64\love.exe
|
||
del love-11.3-win64\lovec.exe
|
||
- name: Upload
|
||
uses: actions/upload-artifact@v2
|
||
with:
|
||
name: Techmino_${{ env.Version }}_${{ env.CommitID }}_Windows
|
||
path: love-11.3-win64
|
||
|
||
build-linux:
|
||
runs-on: ubuntu-20.04
|
||
steps:
|
||
- uses: actions/checkout@v2
|
||
- name: GetCommitID
|
||
run: |
|
||
CommitID=$(git rev-parse --short "${{ GITHUB.SHA }}")
|
||
echo "CommitID=${CommitID}" >> $GITHUB_ENV
|
||
- name: GetVersion
|
||
run: |
|
||
Version=$(python3 getVersion.py)
|
||
echo "Version=${Version}" >> $GITHUB_ENV
|
||
- name: Download AppImageKit
|
||
run: curl -OL https://github.com/AppImage/AppImageKit/releases/download/12/appimagetool-x86_64.AppImage
|
||
- name: Unpack and Repack
|
||
run: |
|
||
curl -OL https://github.com/26F-Studio/Techmino/releases/download/v0.15.1/Techmino.AppImage
|
||
chmod +x Techmino.AppImage appimagetool-x86_64.AppImage
|
||
./Techmino.AppImage --appimage-extract
|
||
rm Techmino.AppImage
|
||
cd squashfs-root/usr/share/Techmino
|
||
rm -rf document media parts Zframework conf.lua font.ttf main.lua
|
||
cd ../../../..
|
||
cp -r document media parts Zframework conf.lua font.ttf main.lua squashfs-root/usr/share/Techmino
|
||
./appimagetool-x86_64.AppImage squashfs-root Techmino.AppImage
|
||
- name: Upload
|
||
uses: actions/upload-artifact@v2
|
||
with:
|
||
name: Techmino_${{ env.Version }}_${{ env.CommitID }}_Linux
|
||
path: Techmino.AppImage
|
||
|
||
build-android:
|
||
runs-on: ubuntu-20.04
|
||
steps:
|
||
- uses: actions/checkout@v2
|
||
- name: GetCommitID
|
||
run: |
|
||
CommitID=$(git rev-parse --short "${{ GITHUB.SHA }}")
|
||
echo "CommitID=${CommitID}" >> $GITHUB_ENV
|
||
- name: GetVersion
|
||
run: |
|
||
Version=$(python3 getVersion.py)
|
||
echo "Version=${Version}" >> $GITHUB_ENV
|
||
- name: Download Apktool
|
||
run: curl -OL https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.5.0.jar
|
||
- name: Unpack and Repack
|
||
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 -o. apk/assets/game.love libAndroid
|
||
rm apk/assets/game.love Techmino.apk
|
||
7z a -tzip apk/assets/game.love document libAndroid media parts Zframework conf.lua font.ttf main.lua
|
||
python3 .github/workflows/updateAndroidVersion.py
|
||
java -jar apktool_2.5.0.jar b -o Techmino.apk apk
|
||
- uses: 26F-Studio/sign-android-release@master
|
||
name: Sign app APK
|
||
id: sign_app
|
||
with:
|
||
releaseDirectory: .
|
||
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
|
||
alias: ${{ secrets.ALIAS }}
|
||
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
|
||
keyPassword: ${{ secrets.KEY_PASSWORD }}
|
||
env:
|
||
BUILD_TOOLS_VERSION: "30.0.2"
|
||
- name: Upload
|
||
uses: actions/upload-artifact@v2
|
||
with:
|
||
name: Techmino_${{ env.Version }}_${{ env.CommitID }}_Android
|
||
path: ${{steps.sign_app.outputs.signedReleaseFile}}
|
||
|
||
build-macOS:
|
||
runs-on: macos-10.15
|
||
steps:
|
||
- uses: actions/checkout@v2
|
||
- name: GetCommitID
|
||
run: |
|
||
CommitID=$(git rev-parse --short "${{ GITHUB.SHA }}")
|
||
echo "CommitID=${CommitID}" >> $GITHUB_ENV
|
||
- name: GetVersion
|
||
run: |
|
||
Version=$(python3 getVersion.py)
|
||
echo "Version=${Version}" >> $GITHUB_ENV
|
||
- name: Pack love
|
||
run: |
|
||
zip -r Techmino.love document media parts Zframework conf.lua font.ttf main.lua
|
||
- name: Download template
|
||
run: |
|
||
curl -OL https://github.com/26F-Studio/Techmino/releases/download/v0.15.1/Techmino.app.zip
|
||
unzip Techmino.app.zip
|
||
- name: Modify template
|
||
run: |
|
||
python3 .github/workflows/updateOSXVersion.py
|
||
mv Techmino.love Techmino.app/Contents/Resources
|
||
- name: Codesign executable
|
||
# In secrets:
|
||
# - MACOS_CERTIFICATE: the *.p12 Developer ID Certificate, encoded in base64
|
||
# - MACOS_CERTIFICATE_PWD: The password
|
||
env:
|
||
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
|
||
MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }}
|
||
run: |
|
||
echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12
|
||
security create-keychain -p Techminohaowan build.keychain
|
||
security default-keychain -s build.keychain
|
||
security unlock-keychain -p Techminohaowan build.keychain
|
||
security import certificate.p12 -k build.keychain -P $MACOS_CERTIFICATE_PWD -T /usr/bin/codesign
|
||
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k Techminohaowan build.keychain
|
||
/usr/bin/codesign --force --deep -s 79B81FC5EA155243C973B5417B0996501F00EF55 ./Techmino.app -v
|
||
- name: Upload
|
||
uses: actions/upload-artifact@v2
|
||
with:
|
||
name: Techmino_${{ env.Version }}_${{ env.CommitID }}_macOS
|
||
path: Techmino-Packed.app |