name: Create tag and build when new code gets to main run-name: Create tag and build when new code gets to main on: push: branches: - 'release/*' # only release branches tags-ignore: - "**" env: GAME_NAME: MovementTests ITCHIO_USERNAME: Minimata ITCHIO_GAMEID: MovementTests jobs: ReleaseName: runs-on: ubuntu-latest if: ${{ contains(gitea.ref_name, 'release/') }} outputs: release_name: ${{ steps.split.outputs._1 }} steps: - uses: winterjung/split@v2 id: split with: msg: ${{ gitea.ref_name }} separator: '/' Release: runs-on: ubuntu-latest if: ${{ contains(gitea.ref_name, 'release/') }} needs: ReleaseName container: image: barichello/godot-ci:mono-4.6 steps: - name: Install node, curl and zip run: | apt update && apt -y install curl zip nodejs - name: Checkout uses: actions/checkout@v6 with: lfs: false persist-credentials: true - name: Checkout LFS run: | git lfs install --local AUTH=$(git config http.${{ gitea.server_url }}/.extraheader) AUTH_FILE=$(git config includeif.gitdir:/workspace/${{ gitea.repository }}/.git.path) git config -f $AUTH_FILE --unset http.${{ gitea.server_url }}/.extraheader git config -f $AUTH_FILE http.${{ gitea.server_url }}/${{ gitea.repository }}.git/info/lfs/objects/batch.extraheader "$AUTH" git lfs pull - name: Import resources and build solution run: | godot --headless --editor --build-solutions --quit --import --path $PWD - name: Build Windows run: | mkdir -v -p build/windows godot --headless --verbose --build-solutions --export-release "Windows Desktop" build/windows/${{ env.GAME_NAME }}.exe zip -r Windows.zip build/windows - name: Upload to Itch uses: KikimoraGames/itch-publish@v0.0.3 with: butlerApiKey: ${{ secrets.BUTLER_TOKEN }} itchUsername: ${{ env.ITCHIO_USERNAME }} itchGameId: ${{ env.ITCHIO_GAMEID }} buildNumber: ${{ needs.ReleaseName.outputs.release_name }} gameData: Windows.zip buildChannel: windows - name: Build Windows ARM run: | mkdir -v -p build/windowsArm godot --headless --verbose --build-solutions --export-release "Windows ARM" build/windowsArm/${{ env.GAME_NAME }}.exe zip -r WindowsArm.zip build/windowsArm - name: Upload to Itch uses: KikimoraGames/itch-publish@v0.0.3 with: butlerApiKey: ${{ secrets.BUTLER_TOKEN }} itchUsername: ${{ env.ITCHIO_USERNAME }} itchGameId: ${{ env.ITCHIO_GAMEID }} buildNumber: ${{ needs.ReleaseName.outputs.release_name }} gameData: WindowsArm.zip buildChannel: windows-arm - name: Linux Build run: | mkdir -v -p build/linux godot --headless --verbose --export-release "Linux/X11" build/linux/${{ env.GAME_NAME }}.x86_64 zip -r Linux.zip build/linux - name: Upload to Itch uses: KikimoraGames/itch-publish@v0.0.3 with: butlerApiKey: ${{ secrets.BUTLER_TOKEN }} itchUsername: ${{ env.ITCHIO_USERNAME }} itchGameId: ${{ env.ITCHIO_GAMEID }} buildNumber: ${{ needs.ReleaseName.outputs.release_name }} gameData: Linux.zip buildChannel: linux - name: Mac Build run: | mkdir -v -p build/mac godot --headless --verbose --export-release "macOS" build/mac/${{ env.GAME_NAME }}.zip zip -r Mac.zip build/mac - name: Upload to Itch uses: KikimoraGames/itch-publish@v0.0.3 with: butlerApiKey: ${{ secrets.BUTLER_TOKEN }} itchUsername: ${{ env.ITCHIO_USERNAME }} itchGameId: ${{ env.ITCHIO_GAMEID }} buildNumber: ${{ needs.ReleaseName.outputs.release_name }} gameData: Mac.zip buildChannel: mac