name: Techmino Release CI on: push: tags: - "v*" jobs: get-info: runs-on: ubuntu-20.04 outputs: name: ${{ steps.actual-get-info.outputs.name }} apkCode: ${{ steps.actual-get-info.outputs.apkCode }} code: ${{ steps.actual-get-info.outputs.code }} release: ${{ steps.actual-get-info.outputs.release }} updateTitle: ${{ steps.actual-get-info.outputs.updateTitle }} updateNote: ${{ steps.actual-get-info.outputs.updateNote }} commit: ${{ steps.actual-get-info.outputs.commit }} steps: - uses: actions/checkout@v2 - name: Install lua run: | sudo apt-get install lua5.3 -y - name: Get Version id: actual-get-info run: | UPDATE_NOTE=$(lua .github/workflows/getVersion.lua -updateNote) UPDATE_NOTE="${UPDATE_NOTE//'%'/'%25'}" UPDATE_NOTE="${UPDATE_NOTE//$'\n'/'%0A'}" UPDATE_NOTE="${UPDATE_NOTE//$'\r'/'%0D'}" echo "::set-output name=name::$(lua .github/workflows/getVersion.lua -name)" echo "::set-output name=apkCode::$(lua .github/workflows/getVersion.lua -apkCode)" echo "::set-output name=code::$(lua .github/workflows/getVersion.lua -code)" echo "::set-output name=release::$(lua .github/workflows/getVersion.lua -release)" echo "::set-output name=updateTitle::$(lua .github/workflows/getVersion.lua -updateTitle)" echo "::set-output name=updateNote::$UPDATE_NOTE" echo "::set-output name=commit::$(git rev-parse --short ${{ GITHUB.SHA }})" build-windows-x64: runs-on: windows-latest needs: get-info steps: - uses: actions/checkout@v2 - uses: ./.github/actions/update-version - 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 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-info.outputs.release }}_Win64.zip .\love - name: Release uses: softprops/action-gh-release@v1 with: name: ${{ needs.get-info.outputs.updateTitle }} files: Techmino_a${{ needs.get-info.outputs.release }}_Win64.zip - name: Upload artifact to server uses: ./.github/actions/upload-artifact with: WEBDAV_USERNAME: ${{ secrets.WEBDAV_USERNAME }} WEBDAV_PASSWORD: ${{ secrets.WEBDAV_PASSWORD }} ARTIFACT_TYPE: release ARTIFACT_PLATFORM: Win64 ARTIFACT_NAME: Techmino_a${{ needs.get-info.outputs.release }}_Win64.zip build-windows-x86: runs-on: windows-latest needs: get-info steps: - uses: actions/checkout@v2 - uses: ./.github/actions/update-version - uses: ./.github/actions/build-windows with: love-url: https://github.com/love2d/love/releases/download/11.3/love-11.3-win32.zip love-dir: love-11.3-win32 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-info.outputs.release }}_Win32.zip .\love - name: Release uses: softprops/action-gh-release@v1 with: name: ${{ needs.get-info.outputs.updateTitle }} files: Techmino_a${{ needs.get-info.outputs.release }}_Win32.zip - name: Upload artifact to server uses: ./.github/actions/upload-artifact with: WEBDAV_USERNAME: ${{ secrets.WEBDAV_USERNAME }} WEBDAV_PASSWORD: ${{ secrets.WEBDAV_PASSWORD }} ARTIFACT_TYPE: release ARTIFACT_PLATFORM: Win32 ARTIFACT_NAME: Techmino_a${{ needs.get-info.outputs.release }}_Win32.zip build-linux: runs-on: ubuntu-20.04 needs: get-info steps: - uses: actions/checkout@v2 - uses: ./.github/actions/update-version - uses: ./.github/actions/build-linux with: file-path: Techmino_a${{ needs.get-info.outputs.release }}_Linux.AppImage icon: .github/build/Linux/icon.png - name: Release uses: softprops/action-gh-release@v1 with: name: ${{ needs.get-info.outputs.updateTitle }} files: Techmino_a${{ needs.get-info.outputs.release }}_Linux.AppImage - name: Upload artifact to server uses: ./.github/actions/upload-artifact with: WEBDAV_USERNAME: ${{ secrets.WEBDAV_USERNAME }} WEBDAV_PASSWORD: ${{ secrets.WEBDAV_PASSWORD }} ARTIFACT_TYPE: release ARTIFACT_PLATFORM: Linux ARTIFACT_NAME: Techmino_a${{ needs.get-info.outputs.release }}_Linux.AppImage build-android: runs-on: ubuntu-20.04 needs: get-info steps: - uses: actions/checkout@v2 - uses: ./.github/actions/update-version - uses: ./.github/actions/build-android with: type: Release apkCode: ${{ needs.get-info.outputs.apkCode }} name: ${{ needs.get-info.outputs.name }} file-path: Techmino_a${{ needs.get-info.outputs.release }}_Android.apk SIGNING_KEY: ${{ secrets.SIGNING_KEY }} KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }} ALIAS: ${{ secrets.ALIAS }} KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} - name: Release uses: softprops/action-gh-release@v1 with: name: ${{ needs.get-info.outputs.updateTitle }} files: Techmino_a${{ needs.get-info.outputs.release }}_Android.apk - name: Upload artifact to server uses: ./.github/actions/upload-artifact with: WEBDAV_USERNAME: ${{ secrets.WEBDAV_USERNAME }} WEBDAV_PASSWORD: ${{ secrets.WEBDAV_PASSWORD }} ARTIFACT_TYPE: release ARTIFACT_PLATFORM: Android ARTIFACT_NAME: Techmino_a${{ needs.get-info.outputs.release }}_Android.apk build-macOS: runs-on: macos-10.15 needs: get-info steps: - uses: actions/checkout@v2 - uses: ./.github/actions/update-version - uses: ./.github/actions/build-macos with: name: ${{ needs.get-info.outputs.name }} icon: .github/build/macOS/icon.icns APPLE_API_ID: "${{ secrets.APPLE_API_ID }}" APPLE_API_ISSUER: "${{ secrets.APPLE_API_ISSUER }}" APPLE_API_KEY: "${{ secrets.APPLE_API_KEY }}" APPLE_APP_IDENTIFIER: "${{ secrets.APPLE_APP_IDENTIFIER }}" APPLE_KEYCHAIN_NAME: "${{ secrets.APPLE_KEYCHAIN_NAME }}" APPLE_KEYCHAIN_PWD: "${{ secrets.APPLE_KEYCHAIN_PWD }}" FASTLANE_MATCH_PWD: "${{ secrets.FASTLANE_MATCH_PWD }}" FASTLANE_MATCH_TOKEN: "${{ secrets.FASTLANE_MATCH_TOKEN }}" - name: Pack Techmino run: | mv Techmino.dmg Techmino_a${{ needs.get-info.outputs.release }}_MacOS.dmg - name: Release uses: softprops/action-gh-release@v1 with: name: ${{ needs.get-info.outputs.updateTitle }} files: Techmino_a${{ needs.get-info.outputs.release }}_MacOS.dmg - name: Upload artifact to server uses: ./.github/actions/upload-artifact with: WEBDAV_USERNAME: ${{ secrets.WEBDAV_USERNAME }} WEBDAV_PASSWORD: ${{ secrets.WEBDAV_PASSWORD }} ARTIFACT_TYPE: release ARTIFACT_PLATFORM: MacOS ARTIFACT_NAME: Techmino_a${{ needs.get-info.outputs.release }}_MacOS.dmg build-iOS: runs-on: macos-latest needs: get-info steps: - uses: actions/checkout@v2 - uses: ./.github/actions/update-version - uses: ./.github/actions/build-ios with: name: ${{ needs.get-info.outputs.name }} type: "release" APPLE_API_ID: "${{ secrets.APPLE_API_ID }}" APPLE_API_ISSUER: "${{ secrets.APPLE_API_ISSUER }}" APPLE_API_KEY: "${{ secrets.APPLE_API_KEY }}" APPLE_APP_BUILD: "${{ needs.get-info.outputs.code }}.0.${{ github.run_number }}.${{ github.run_attempt }}" APPLE_APP_CHANGELOG: "${{ needs.get-info.outputs.updateNote }}" APPLE_APP_ID: "${{ secrets.APPLE_APP_ID }}" APPLE_APP_IDENTIFIER: "${{ secrets.APPLE_APP_IDENTIFIER }}" APPLE_APP_PROFILE: "${{ secrets.APPLE_APP_PROFILE }}" APPLE_KEYCHAIN_NAME: "${{ secrets.APPLE_KEYCHAIN_NAME }}" APPLE_KEYCHAIN_PWD: "${{ secrets.APPLE_KEYCHAIN_PWD }}" FASTLANE_ACTION_ID: "${{ github.run_id }}" FASTLANE_DISCORD_WEBHOOK: "${{ secrets.FASTLANE_DISCORD_WEBHOOK }}" FASTLANE_MATCH_PWD: "${{ secrets.FASTLANE_MATCH_PWD }}" FASTLANE_MATCH_TOKEN: "${{ secrets.FASTLANE_MATCH_TOKEN }}" - name: Rename ipa shell: bash run: | mv Techmino.ipa Techmino_a${{ needs.get-info.outputs.release }}_iOS.ipa - name: Release uses: softprops/action-gh-release@v1 with: name: ${{ needs.get-info.outputs.updateTitle }} files: Techmino_a${{ needs.get-info.outputs.release }}_iOS.ipa - name: Upload artifact to server uses: ./.github/actions/upload-artifact with: WEBDAV_USERNAME: ${{ secrets.WEBDAV_USERNAME }} WEBDAV_PASSWORD: ${{ secrets.WEBDAV_PASSWORD }} ARTIFACT_TYPE: release ARTIFACT_PLATFORM: iOS ARTIFACT_NAME: Techmino_a${{ needs.get-info.outputs.release }}_iOS.ipa Add-Release-note: runs-on: ubuntu-20.04 needs: get-info steps: - uses: actions/checkout@v2 - name: Release uses: softprops/action-gh-release@v1 with: name: ${{ needs.get-info.outputs.updateTitle }} body: ${{ needs.get-info.outputs.updateNote }}