271 lines
12 KiB
YAML
271 lines
12 KiB
YAML
name: Techmino CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ main, ci ]
|
|
|
|
jobs:
|
|
build-windows:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Download lua
|
|
run: |
|
|
curl -OL https://nchc.dl.sourceforge.net/project/luabinaries/5.4.2/Tools%20Executables/lua-5.4.2_Win64_bin.zip
|
|
- name: Unpack lua
|
|
run: |
|
|
7z x .\lua-5.4.2_Win64_bin.zip -olua
|
|
rename-Item '.\lua\lua54.exe' -NewName 'lua.exe'
|
|
- name: Get CommitID
|
|
run: |
|
|
$CommitID=git rev-parse --short "${{ GITHUB.SHA }}"
|
|
echo "CommitID=${CommitID}" >> $env:GITHUB_ENV
|
|
- name: Get Version
|
|
run: |
|
|
$Version=.\lua\lua.exe .\.github\workflows\getVersion.lua -name
|
|
echo "Version=${Version}" >> $env:GITHUB_ENV
|
|
- name: Update Conf
|
|
run: |
|
|
python .\.github\workflows\updateVersion.py -T Conf
|
|
- name: Update Version
|
|
run: |
|
|
python .\.github\workflows\updateVersion.py -T Version -H ${{ env.CommitID }}
|
|
- name: Download love
|
|
run: |
|
|
curl -OL https://github.com/love2d/love/releases/download/11.3/love-11.3-win64.zip
|
|
- name: Unpack love
|
|
run: |
|
|
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/latest/win64.zip
|
|
- name: Unpack ColdClear
|
|
run: |
|
|
7z x .\win64.zip -oColdClear
|
|
- name: Download ResourceHacker
|
|
run: |
|
|
curl -OL http://www.angusj.com/resourcehacker/resource_hacker.zip
|
|
- name: Unpack ResourceHacker
|
|
run: |
|
|
7z x .\resource_hacker.zip
|
|
- name: Pack Techmino
|
|
run: |
|
|
7z a -tzip .\Techmino.love .\document .\media .\parts .\Zframework .\conf.lua .\font.ttf .\main.lua .\version.lua
|
|
cmd /c copy /b .\love-11.3-win64\love.exe + .\Techmino.love .\love-11.3-win64\Techmino.exe
|
|
del .\love-11.3-win64\love.exe
|
|
del .\love-11.3-win64\lovec.exe
|
|
del .\love-11.3-win64\game.ico
|
|
del .\love-11.3-win64\love.ico
|
|
del .\love-11.3-win64\changes.txt
|
|
del .\love-11.3-win64\readme.txt
|
|
move .\ColdClear\cold_clear.dll .\love-11.3-win64
|
|
move .\ColdClear\CCloader.dll .\love-11.3-win64
|
|
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_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
|
|
with:
|
|
name: Techmino_${{ env.Version }}_${{ GITHUB.RUN_NUMBER }}_${{ env.CommitID }}_Windows
|
|
path: love-11.3-win64
|
|
|
|
build-linux:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install lua
|
|
run: |
|
|
sudo apt-get update -y
|
|
sudo apt-get upgrade -y
|
|
sudo apt-get install lua5.3 -y
|
|
- name: Get CommitID
|
|
run: |
|
|
CommitID=$(git rev-parse --short "${{ GITHUB.SHA }}")
|
|
echo "CommitID=${CommitID}" >> $GITHUB_ENV
|
|
- name: Get Version
|
|
run: |
|
|
Version=$(lua ./.github/workflows/getVersion.lua -name)
|
|
echo "Version=${Version}" >> $GITHUB_ENV
|
|
- name: Update Conf
|
|
run: |
|
|
python3 ./.github/workflows/updateVersion.py -T Conf
|
|
- name: Update Version
|
|
run: |
|
|
python3 ./.github/workflows/updateVersion.py -T Version -H ${{ env.CommitID }}
|
|
#我不是很懂这里为什么不能用https://github.com/AppImage/AppImageKit/releases/download/latest/appimagetool-x86_64.AppImage 但是事实就是它404了
|
|
- name: Download AppImageKit
|
|
run: |
|
|
curl -OL https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage
|
|
- name: Download love
|
|
run: |
|
|
curl -OL https://github.com/love2d/love/releases/download/11.3/love-11.3-x86_64.AppImage
|
|
- name: Unpack love
|
|
run: |
|
|
chmod 777 ./love-11.3-x86_64.AppImage
|
|
./love-11.3-x86_64.AppImage --appimage-extract
|
|
- name: Download ColdClear
|
|
run: |
|
|
curl -OL https://github.com/26F-Studio/cold_clear_ai_love2d_wrapper/releases/download/latest/linux.zip
|
|
- name: Unpack ColdClear
|
|
run: |
|
|
7z x ./linux.zip -oColdClear
|
|
- name: Pack Techmino
|
|
run: |
|
|
rm -rf ./squashfs-root/love ./squashfs-root/love.desktop ./squashfs-root/love.svg ./squashfs-root/.DirIcon
|
|
mv ./build/Linux/love.template ./squashfs-root/love
|
|
mv ./build/Linux/Techmino.desktop.template ./squashfs-root/Techmino.desktop
|
|
mv ./build/Linux/icon_snapshot.png ./squashfs-root/icon.png
|
|
cp ./squashfs-root/icon.png ./squashfs-root/.DirIcon
|
|
chmod 777 ./squashfs-root/love
|
|
mkdir -p ./squashfs-root/usr/share/Techmino
|
|
mv ./document ./media ./parts ./Zframework ./conf.lua ./font.ttf ./main.lua ./version.lua ./squashfs-root/usr/share/Techmino
|
|
mv ./ColdClear/CCloader.so ./squashfs-root/usr/share/Techmino
|
|
mv ./ColdClear/libcold_clear.so ./squashfs-root/usr/lib
|
|
chmod 777 ./appimagetool-x86_64.AppImage
|
|
./appimagetool-x86_64.AppImage ./squashfs-root ./Techmino.AppImage
|
|
- name: Upload
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: Techmino_${{ env.Version }}_${{ GITHUB.RUN_NUMBER }}_${{ env.CommitID }}_Linux
|
|
path: Techmino.AppImage
|
|
|
|
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
|
|
sudo apt-get upgrade -y
|
|
sudo apt-get install lua5.3 -y
|
|
- name: Get CommitID
|
|
run: |
|
|
CommitID=$(git rev-parse --short "${{ GITHUB.SHA }}")
|
|
echo "CommitID=${CommitID}" >> $GITHUB_ENV
|
|
- name: Get Version
|
|
run: |
|
|
Version=$(lua ./.github/workflows/getVersion.lua -name)
|
|
echo "Version=${Version}" >> $GITHUB_ENV
|
|
- name: Update Conf
|
|
run: |
|
|
python3 ./.github/workflows/updateVersion.py -T Conf
|
|
- name: Update Version
|
|
run: |
|
|
python3 ./.github/workflows/updateVersion.py -T Version -H ${{ env.CommitID }}
|
|
- name: Clone love-android
|
|
run: |
|
|
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: ./love-android/app/build/outputs/apk/release/Techmino_Snapshot.apk
|
|
|
|
build-macOS:
|
|
runs-on: macos-10.15
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install lua
|
|
run: |
|
|
curl -OL http://www.lua.org/ftp/lua-5.4.3.tar.gz
|
|
tar zxf lua-5.4.3.tar.gz
|
|
cd lua-5.4.3
|
|
make macosx
|
|
sudo make install
|
|
- name: Get CommitID
|
|
run: |
|
|
CommitID=$(git rev-parse --short "${{ GITHUB.SHA }}")
|
|
echo "CommitID=${CommitID}" >> $GITHUB_ENV
|
|
- name: Get Version
|
|
run: |
|
|
Version=$(lua ./.github/workflows/getVersion.lua -name)
|
|
echo "Version=${Version}" >> $GITHUB_ENV
|
|
- name: Update Conf
|
|
run: |
|
|
python3 ./.github/workflows/updateVersion.py -T Conf
|
|
- name: Update Version
|
|
run: |
|
|
python3 ./.github/workflows/updateVersion.py -T Version -H ${{ env.CommitID }}
|
|
- name: Pack love
|
|
run: |
|
|
7z a -tzip ./Techmino.love ./document ./media ./parts ./Zframework ./conf.lua ./font.ttf ./main.lua ./version.lua
|
|
- name: Download template
|
|
run: |
|
|
curl -OL https://github.com/26F-Studio/Techmino/releases/download/v0.15.1/Techmino.app.zip
|
|
- name: Unpack template
|
|
run: |
|
|
7z x ./Techmino.app.zip
|
|
- name: Modify template
|
|
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
|
|
# - 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: Pack Techmino
|
|
run: |
|
|
zip -r -y Techmino.zip Techmino.app
|
|
- name: Upload
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: Techmino_${{ env.Version }}_${{ GITHUB.RUN_NUMBER }}_${{ env.CommitID }}_macOS
|
|
path: Techmino.zip |