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: GODOT_VERSION: 4.6 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: godot if: ${{ contains(gitea.ref_name, 'release/') }} needs: ReleaseName steps: - name: Checkout with LFS uses: https://git.game-dev.space/minimata/checkout-with-lfs.git@main - name: Setup Godot id: setup-godot uses: https://git.game-dev.space/minimata/setup-godot.git@main with: godot-version: '4.6' dotnet-version: 'net9.0' - name: Setup Butler shell: bash env: BUTLER_API_KEY: ${{ secrets.BUTLER_TOKEN }} run: | mkdir ./tools 2>/dev/null || true pushd tools curl -sSLfo ./butler.zip "https://broth.itch.zone/butler/linux-amd64/LATEST/archive/default" unzip butler.zip chmod +x ./butler popd ./tools/butler -V - 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 Windows to itch.io shell: bash env: BUTLER_API_KEY: ${{ secrets.BUTLER_TOKEN }} run: | versionArgument="--userversion ${{ needs.ReleaseName.outputs.release_name }}" ./tools/butler push \ "Windows.zip" \ ${{ env.ITCHIO_USERNAME }}/${{ env.ITCHIO_GAMEID }}:windows ${versionArgument} - 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 Windows to itch.io shell: bash env: BUTLER_API_KEY: ${{ secrets.BUTLER_TOKEN }} run: | versionArgument="--userversion ${{ needs.ReleaseName.outputs.release_name }}" ./tools/butler push \ "WindowsArm.zip" \ ${{ env.ITCHIO_USERNAME }}/${{ env.ITCHIO_GAMEID }}:windows-arm ${versionArgument} - 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 Windows to itch.io shell: bash env: BUTLER_API_KEY: ${{ secrets.BUTLER_TOKEN }} run: | versionArgument="--userversion ${{ needs.ReleaseName.outputs.release_name }}" ./tools/butler push \ "Linux.zip" \ ${{ env.ITCHIO_USERNAME }}/${{ env.ITCHIO_GAMEID }}:linux ${versionArgument} - 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 Windows to itch.io shell: bash env: BUTLER_API_KEY: ${{ secrets.BUTLER_TOKEN }} run: | versionArgument="--userversion ${{ needs.ReleaseName.outputs.release_name }}" ./tools/butler push \ "Mac.zip" \ ${{ env.ITCHIO_USERNAME }}/${{ env.ITCHIO_GAMEID }}:mac ${versionArgument}