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 -string echo "Version=${Version}" >> $env:GITHUB_ENV - name: Update Conf Version run: | python .github/workflows/updateConfVersion.py -H ${{ env.CommitID }} - 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 version.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 }}_${{ 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 -string) echo "Version=${Version}" >> $GITHUB_ENV - name: Update Conf Version run: | python3 .github/workflows/updateConfVersion.py -H ${{ env.CommitID }} - 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 version.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 }}_${{ GITHUB.RUN_NUMBER }}_${{ env.CommitID }}_Linux path: Techmino.AppImage build-android: 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 -string) echo "Version=${Version}" >> $GITHUB_ENV - name: Update Conf Version run: | python3 .github/workflows/updateConfVersion.py -H ${{ env.CommitID }} - 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 version.lua python3 .github/workflows/updateAndroidVersion.py -C $(lua ./.github/workflows/getVersion.lua -code) -N $(lua ./.github/workflows/getVersion.lua -string) java -jar apktool_2.5.0.jar b -o Techmino.apk apk - uses: 26F-Studio/sign-android-release@master name: Sign 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 }}_${{ GITHUB.RUN_NUMBER }}_${{ env.CommitID }}_Android path: ${{steps.sign_app.outputs.signedReleaseFile}} 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 -string) echo "Version=${Version}" >> $GITHUB_ENV - name: Update Conf Version run: | python3 .github/workflows/updateConfVersion.py -H ${{ env.CommitID }} - name: Pack love run: | zip -r 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 unzip Techmino.app.zip - name: Modify template run: | python3 .github/workflows/updateOSXVersion.py -N $(lua ./.github/workflows/getVersion.lua -string) 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: Pack Techmino run: | zip -r -y Techmino-Packed.app.zip Techmino.app - name: Upload uses: actions/upload-artifact@v2 with: name: Techmino_${{ env.Version }}_${{ GITHUB.RUN_NUMBER }}_${{ env.CommitID }}_macOS path: Techmino-Packed.app.zip