diff --git a/.github/actions/build-android/action.yml b/.github/actions/build-android/action.yml index b0df04e2..730232d2 100644 --- a/.github/actions/build-android/action.yml +++ b/.github/actions/build-android/action.yml @@ -3,8 +3,6 @@ description: 'build Android package' inputs: type: required: true - cc-url: - required: true code: required: true name: @@ -34,9 +32,9 @@ runs: with: file-path: love-android/app/src/main/assets/game.love - name: Download ColdClear arm64-v8a - uses: ./.github/actions/get-unzip + uses: ./.github/actions/get-cc with: - url: ${{ inputs.cc-url }}/android_aarch64.zip + arch: android_aarch64 dir: ColdClear/arm64-v8a - name: Process ColdClear arm64-v8a shell: bash @@ -46,9 +44,9 @@ runs: mkdir -p libAndroid/arm64-v8a mv ColdClear/arm64-v8a/libs/arm64-v8a/libCCloader.so libAndroid/arm64-v8a - name: Download ColdClear armeabi-v7a - uses: ./.github/actions/get-unzip + uses: ./.github/actions/get-cc with: - url: ${{ inputs.cc-url }}/android_armv7.zip + arch: android_armv7 dir: ColdClear/armeabi-v7a - name: Process ColdClear armeabi-v7a shell: bash diff --git a/.github/actions/build-linux/action.yml b/.github/actions/build-linux/action.yml index 2d7049b6..fe7988ab 100644 --- a/.github/actions/build-linux/action.yml +++ b/.github/actions/build-linux/action.yml @@ -1,8 +1,6 @@ name: 'build Linux' description: 'build Linux package' inputs: - cc-url: - required: true file-path: required: false default: Techmino.AppImage @@ -22,9 +20,9 @@ runs: chmod 777 love-11.3-x86_64.AppImage ./love-11.3-x86_64.AppImage --appimage-extract - name: Download ColdClear - uses: ./.github/actions/get-unzip + uses: ./.github/actions/get-cc with: - url: ${{ inputs.cc-url }} + arch: linux - name: Pack Techmino shell: bash run: | diff --git a/.github/actions/build-macos/action.yml b/.github/actions/build-macos/action.yml index d558c1a6..063d7b18 100644 --- a/.github/actions/build-macos/action.yml +++ b/.github/actions/build-macos/action.yml @@ -1,14 +1,14 @@ name: 'build Mac OS' description: 'build Mac OS package' inputs: - cc-url: - required: true name: required: true icon: required: true MACOS_CERTIFICATE: required: true + MACOS_CERTIFICATE_ID: + required: true MACOS_CERTIFICATE_PWD: required: true runs: @@ -20,9 +20,9 @@ runs: with: url: https://github.com/26F-Studio/Techmino/releases/download/v0.15.1/Techmino.app.zip - name: Download ColdClear - uses: ./.github/actions/get-unzip + uses: ./.github/actions/get-cc with: - url: ${{ inputs.cc-url }} + arch: macOS - name: Modify template shell: bash run: | @@ -42,4 +42,4 @@ runs: security unlock-keychain -p Techminohaowan build.keychain security import certificate.p12 -k build.keychain -P ${{ inputs.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 + /usr/bin/codesign --force --deep -s ${{ inputs.MACOS_CERTIFICATE_ID }} Techmino.app -v diff --git a/.github/actions/build-windows/action.yml b/.github/actions/build-windows/action.yml index 7cd217f4..09c51bc9 100644 --- a/.github/actions/build-windows/action.yml +++ b/.github/actions/build-windows/action.yml @@ -5,7 +5,7 @@ inputs: required: true love-dir: required: true - cc-url: + arch: required: true version: required: true @@ -22,9 +22,9 @@ runs: shell: bash run: mv ${{ inputs.love-dir }} love - name: Download ColdClear - uses: ./.github/actions/get-unzip + uses: ./.github/actions/get-cc with: - url: ${{ inputs.cc-url }} + arch: ${{ inputs.arch }} - name: Download ResourceHacker uses: ./.github/actions/get-unzip with: diff --git a/.github/actions/get-cc/action.yml b/.github/actions/get-cc/action.yml new file mode 100644 index 00000000..595b1dcb --- /dev/null +++ b/.github/actions/get-cc/action.yml @@ -0,0 +1,32 @@ +name: 'get cc' +description: 'download cc into specific dir' +inputs: + tag: + required: false + default: + arch: + required: true + dir: + required: false + default: '.' + repo: + required: false + default: 26F-Studio/cold_clear_ai_love2d_wrapper + temp-file: + required: false + default: temp.zip +runs: + using: "composite" + steps: + - run: | + echo "::set-output name=tag::"$(if [ -z "${{ inputs.tag }}" ] + then curl -w '%{url_effective}' -I -L -s -S https://github.com/${{ inputs.repo }}/releases/latest -o /dev/null | grep -o '\<[^/]*$' + else echo ${{ inputs.tag }} + fi) + id: get-tag + shell: bash + - uses: ./.github/actions/get-unzip + with: + url: https://github.com/${{ inputs.repo }}/releases/download/${{ steps.get-tag.outputs.tag }}/${{ inputs.arch }}.zip + dir: ${{ inputs.dir }} + temp-file: ${{ inputs.temp-file }} diff --git a/.github/actions/get-unzip/action.yml b/.github/actions/get-unzip/action.yml index d3e14524..1f38218e 100644 --- a/.github/actions/get-unzip/action.yml +++ b/.github/actions/get-unzip/action.yml @@ -6,10 +6,13 @@ inputs: dir: required: false default: '.' + temp-file: + required: false + default: temp.zip runs: using: "composite" steps: - - run: curl -L ${{ inputs.url }} -o temp.zip + - run: curl -L ${{ inputs.url }} -o ${{ inputs.temp-file }} shell: bash - - run: 7z x temp.zip -o${{ inputs.dir }} + - run: 7z x ${{ inputs.temp-file }} -o${{ inputs.dir }} shell: bash diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a312eab2..6868e0fd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,89 +7,75 @@ on: branches: [ main, ci* ] jobs: - get-version: + get-info: runs-on: ubuntu-20.04 outputs: - name: ${{ steps.actual-get-version.outputs.name }} - code: ${{ steps.actual-get-version.outputs.code }} - commit: ${{ steps.actual-get-version.outputs.commit }} + name: ${{ steps.actual-get-info.outputs.name }} + 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 update -y sudo apt-get install lua5.3 -y - name: Get Version - id: actual-get-version + id: actual-get-info run: | echo "::set-output name=name::$(lua .github/workflows/getVersion.lua -name)" echo "::set-output name=code::$(lua .github/workflows/getVersion.lua -code)" echo "::set-output name=commit::$(git rev-parse --short ${{ GITHUB.SHA }})" - get-cc-url: - runs-on: ubuntu-20.04 - outputs: - url: ${{ steps.get-url.outputs.url }} - steps: - - uses: actions/checkout@v2 - - name: Get URL - id: get-url - run: | - echo "::set-output name=url::https://github.com/26F-Studio/cold_clear_ai_love2d_wrapper/releases/download/$(python .github/workflows/getLatest.py -P)" - build-windows: runs-on: windows-latest - needs: [get-version, get-cc-url] + needs: get-info steps: - uses: actions/checkout@v2 - uses: ./.github/actions/snapshot-update with: - commit: ${{ needs.get-version.outputs.commit }} + 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 - cc-url: ${{ needs.get-cc-url.outputs.url }}/win64.zip - version: ${{ needs.get-version.outputs.name }} + 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-version.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-version.outputs.commit }}_Windows + 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-version, get-cc-url] + needs: get-info steps: - uses: actions/checkout@v2 - uses: ./.github/actions/snapshot-update with: - commit: ${{ needs.get-version.outputs.commit }} + commit: ${{ needs.get-info.outputs.commit }} - uses: ./.github/actions/build-linux with: - cc-url: ${{ needs.get-cc-url.outputs.url }}/linux.zip icon: .github/build/Linux/icon_snapshot.png - name: Upload uses: actions/upload-artifact@v2 with: - name: Techmino_${{ needs.get-version.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-version.outputs.commit }}_Linux + 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-version, get-cc-url] + needs: get-info steps: - uses: actions/checkout@v2 - uses: ./.github/actions/snapshot-update with: - commit: ${{ needs.get-version.outputs.commit }} + commit: ${{ needs.get-info.outputs.commit }} - uses: ./.github/actions/build-android with: type: Snapshot - cc-url: ${{ needs.get-cc-url.outputs.url }} - code: ${{ needs.get-version.outputs.code }} - name: ${{ needs.get-version.outputs.name }} + code: ${{ needs.get-info.outputs.code }} + name: ${{ needs.get-info.outputs.name }} file-path: Techmino_Snapshot.apk SIGNING_KEY: ${{ secrets.SIGNING_KEY }} KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }} @@ -98,26 +84,29 @@ jobs: - name: Upload uses: actions/upload-artifact@v2 with: - name: Techmino_${{ needs.get-version.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-version.outputs.commit }}_Android + 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-version, get-cc-url] + needs: get-info steps: - uses: actions/checkout@v2 - uses: ./.github/actions/snapshot-update with: - commit: ${{ needs.get-version.outputs.commit }} + commit: ${{ needs.get-info.outputs.commit }} - uses: ./.github/actions/build-macos with: - cc-url: ${{ needs.get-cc-url.outputs.url }}/macOS.zip - name: ${{ needs.get-version.outputs.name }} + name: ${{ needs.get-info.outputs.name }} 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 }} + - name: Pack Techmino + run: | + zip -r -y Techmino.zip Techmino.app - name: Upload uses: actions/upload-artifact@v2 with: - name: Techmino_${{ needs.get-version.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-version.outputs.commit }}_macOS - path: Techmino.app + name: Techmino_${{ needs.get-info.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-info.outputs.commit }}_macOS + path: Techmino.zip diff --git a/.github/workflows/getLatest.py b/.github/workflows/getLatest.py deleted file mode 100644 index 94989b49..00000000 --- a/.github/workflows/getLatest.py +++ /dev/null @@ -1,27 +0,0 @@ -import requests -import time -import json -import argparse - -def getColdClear(args): - while True: - get = requests.get(f'https://api.github.com/repos/{args.Repo}/releases') - if get.status_code != 200: - time.sleep(2) - else: - break - getJson = json.loads(get.text) - if args.Pre: - print (getJson[0]['tag_name']) - else: - for i in getJson: - if i['prerelease'] == args.Pre: - print (i['tag_name']) - break - -if __name__ == '__main__': - parser = argparse.ArgumentParser(description='用于获取Github仓库的最新Release版本名') - parser.add_argument('-P', '--Pre', action='store_true', help = '是否获取pre') - parser.add_argument('-R', '--Repo', default = '26F-Studio/cold_clear_ai_love2d_wrapper', help = '获取的仓库, 默认为cold_clear_ai_love2d_wrapper, 输入格式为User/Repo') - args = parser.parse_args() - getColdClear(args) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6fe1b1ce..f7da89c9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,22 +6,21 @@ on: - '*' jobs: - get-version: + get-info: runs-on: ubuntu-20.04 outputs: - name: ${{ steps.actual-get-version.outputs.name }} - code: ${{ steps.actual-get-version.outputs.code }} - release: ${{ steps.actual-get-version.outputs.release }} - updateTitle: ${{ steps.actual-get-version.outputs.updateTitle }} - commit: ${{ steps.actual-get-version.outputs.commit }} + name: ${{ steps.actual-get-info.outputs.name }} + code: ${{ steps.actual-get-info.outputs.code }} + release: ${{ steps.actual-get-info.outputs.release }} + updateTitle: ${{ steps.actual-get-info.outputs.updateTitle }} + commit: ${{ steps.actual-get-info.outputs.commit }} steps: - uses: actions/checkout@v2 - name: Install lua run: | - sudo apt-get update -y sudo apt-get install lua5.3 -y - name: Get Version - id: actual-get-version + id: actual-get-info run: | echo "::set-output name=name::$(lua .github/workflows/getVersion.lua -name)" echo "::set-output name=code::$(lua .github/workflows/getVersion.lua -code)" @@ -29,20 +28,9 @@ jobs: echo "::set-output name=updateTitle::$(lua .github/workflows/getVersion.lua -updateTitle)" echo "::set-output name=commit::$(git rev-parse --short ${{ GITHUB.SHA }})" - get-cc-url: - runs-on: ubuntu-20.04 - outputs: - url: ${{ steps.get-url.outputs.url }} - steps: - - uses: actions/checkout@v2 - - name: Get URL - id: get-url - run: | - echo "::set-output name=url::https://github.com/26F-Studio/cold_clear_ai_love2d_wrapper/releases/download/$(python .github/workflows/getLatest.py)" - build-windows-x64: runs-on: windows-latest - needs: [get-version, get-cc-url] + needs: get-info steps: - uses: actions/checkout@v2 - name: Update Version @@ -52,20 +40,20 @@ jobs: with: love-url: https://github.com/love2d/love/releases/download/11.3/love-11.3-win64.zip love-dir: love-11.3-win64 - cc-url: ${{ needs.get-cc-url.outputs.url }}/win64.zip - version: ${{ needs.get-version.outputs.release }} + arch: win64 + version: ${{ needs.get-info.outputs.release }} icon: .\.github\build\Windows\icon.ico - name: Pack Techmino - run: 7z a -tzip .\Techmino.a${{ needs.get-version.outputs.release }}.Win64.zip .\love + run: 7z a -tzip .\Techmino.a${{ needs.get-info.outputs.release }}.Win64.zip .\love - name: Release uses: softprops/action-gh-release@v1 with: - name: ${{ needs.get-version.outputs.updateTitle }} - files: Techmino.a${{ needs.get-version.outputs.release }}.Win64.zip + name: ${{ needs.get-info.outputs.updateTitle }} + files: Techmino.a${{ needs.get-info.outputs.release }}.Win64.zip build-windows-x86: runs-on: windows-latest - needs: [get-version, get-cc-url] + needs: get-info steps: - uses: actions/checkout@v2 - name: Update Version @@ -75,20 +63,20 @@ jobs: with: love-url: https://github.com/love2d/love/releases/download/11.3/love-11.3-win32.zip love-dir: love-11.3-win32 - cc-url: ${{ needs.get-cc-url.outputs.url }}/win32.zip - version: ${{ needs.get-version.outputs.release }} + arch: win32 + version: ${{ needs.get-info.outputs.release }} icon: .\.github\build\Windows\icon.ico - name: Pack Techmino - run: 7z a -tzip .\Techmino.a${{ needs.get-version.outputs.release }}.Win32.zip .\love + run: 7z a -tzip .\Techmino.a${{ needs.get-info.outputs.release }}.Win32.zip .\love - name: Release uses: softprops/action-gh-release@v1 with: - name: ${{ needs.get-version.outputs.updateTitle }} - files: Techmino.a${{ needs.get-version.outputs.release }}.Win32.zip + name: ${{ needs.get-info.outputs.updateTitle }} + files: Techmino.a${{ needs.get-info.outputs.release }}.Win32.zip build-linux: runs-on: ubuntu-20.04 - needs: [get-version, get-cc-url] + needs: get-info steps: - uses: actions/checkout@v2 - name: Update Version @@ -96,18 +84,17 @@ jobs: python3 .github/workflows/updateVersion.py -T Version - uses: ./.github/actions/build-linux with: - cc-url: ${{ needs.get-cc-url.outputs.url }}/linux.zip - file-path: Techmino.a${{ needs.get-version.outputs.release }}.AppImage + file-path: Techmino.a${{ needs.get-info.outputs.release }}.AppImage icon: .github/build/Linux/icon.png - name: Release uses: softprops/action-gh-release@v1 with: - name: ${{ needs.get-version.outputs.updateTitle }} - files: Techmino.a${{ needs.get-version.outputs.release }}.AppImage + name: ${{ needs.get-info.outputs.updateTitle }} + files: Techmino.a${{ needs.get-info.outputs.release }}.AppImage build-android: runs-on: ubuntu-20.04 - needs: [get-version, get-cc-url] + needs: get-info steps: - uses: actions/checkout@v2 - name: Update Version @@ -116,10 +103,9 @@ jobs: - uses: ./.github/actions/build-android with: type: Release - cc-url: ${{ needs.get-cc-url.outputs.url }} - code: ${{ needs.get-version.outputs.code }} - name: ${{ needs.get-version.outputs.name }} - file-path: Techmino.a${{ needs.get-version.outputs.Version }}.apk + code: ${{ needs.get-info.outputs.code }} + name: ${{ needs.get-info.outputs.name }} + file-path: Techmino.a${{ needs.get-info.outputs.Version }}.apk SIGNING_KEY: ${{ secrets.SIGNING_KEY }} KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }} ALIAS: ${{ secrets.ALIAS }} @@ -127,12 +113,12 @@ jobs: - name: Release uses: softprops/action-gh-release@v1 with: - name: ${{ needs.get-version.outputs.updateTitle }} - files: Techmino.a${{ needs.get-version.outputs.Version }}.apk + name: ${{ needs.get-info.outputs.updateTitle }} + files: Techmino.a${{ needs.get-info.outputs.Version }}.apk build-android-mini: runs-on: ubuntu-20.04 - needs: [get-version, get-cc-url] + needs: get-info steps: - uses: actions/checkout@v2 - name: Update Version @@ -144,10 +130,9 @@ jobs: - uses: ./.github/actions/build-android with: type: Release - cc-url: ${{ needs.get-cc-url.outputs.url }} - code: ${{ needs.get-version.outputs.code }} - name: ${{ needs.get-version.outputs.name }} - file-path: Techmino.a${{ needs.get-version.outputs.Version }}.mini.apk + code: ${{ needs.get-info.outputs.code }} + name: ${{ needs.get-info.outputs.name }} + file-path: Techmino.a${{ needs.get-info.outputs.Version }}.mini.apk SIGNING_KEY: ${{ secrets.SIGNING_KEY }} KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }} ALIAS: ${{ secrets.ALIAS }} @@ -155,12 +140,12 @@ jobs: - name: Release uses: softprops/action-gh-release@v1 with: - name: ${{ needs.get-version.outputs.updateTitle }} - files: Techmino.a${{ needs.get-version.outputs.Version }}.mini.apk + name: ${{ needs.get-info.outputs.updateTitle }} + files: Techmino.a${{ needs.get-info.outputs.Version }}.mini.apk build-macOS: runs-on: macos-10.15 - needs: [get-version, get-cc-url] + needs: get-info steps: - uses: actions/checkout@v2 - name: Update Version @@ -168,23 +153,23 @@ jobs: python3 .github/workflows/updateVersion.py -T Version - uses: ./.github/actions/build-macos with: - cc-url: ${{ needs.get-cc-url.outputs.url }}/macOS.zip - name: ${{ needs.get-version.outputs.name }} + name: ${{ needs.get-info.outputs.name }} 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 }} - name: Pack Techmino run: | - zip -r -y Techmino.a${{ needs.get-version.outputs.Version }}.macOS.zip Techmino.app ".github/build/macOS/打不开?Can’t open the App?.pdf" + zip -r -y Techmino.a${{ needs.get-info.outputs.Version }}.macOS.zip Techmino.app ".github/build/macOS/打不开?Can’t open the App?.pdf" - name: Release uses: softprops/action-gh-release@v1 with: - name: ${{ needs.get-version.outputs.updateTitle }} - files: Techmino.a${{ needs.get-version.outputs.Version }}.macOS.zip + name: ${{ needs.get-info.outputs.updateTitle }} + files: Techmino.a${{ needs.get-info.outputs.Version }}.macOS.zip build-love: runs-on: ubuntu-20.04 - needs: get-version + needs: get-info steps: - uses: actions/checkout@v2 - name: Update Version @@ -192,16 +177,16 @@ jobs: python3 .github/workflows/updateVersion.py -T Version - uses: ./.github/actions/build-love with: - file-path: Techmino.a${{ needs.get-version.outputs.release }}.love + file-path: Techmino.a${{ needs.get-info.outputs.release }}.love - name: Release uses: softprops/action-gh-release@v1 with: - name: ${{ needs.get-version.outputs.updateTitle }} - files: Techmino.a${{ needs.get-version.outputs.release }}.love + name: ${{ needs.get-info.outputs.updateTitle }} + files: Techmino.a${{ needs.get-info.outputs.release }}.love Add-Release-note: runs-on: ubuntu-20.04 - needs: get-version + needs: get-info steps: - uses: actions/checkout@v2 - name: Install lua @@ -215,5 +200,5 @@ jobs: - name: Release uses: softprops/action-gh-release@v1 with: - name: ${{ needs.get-version.outputs.updateTitle }} + name: ${{ needs.get-info.outputs.updateTitle }} body_path: updateNote.txt