From 5ab1589609061cf71c88973e1e0468a54676be86 Mon Sep 17 00:00:00 2001 From: Minimata Date: Sun, 25 Jan 2026 19:59:37 +0100 Subject: [PATCH] Finalizing workflows --- .gitea/workflows/dev-branch.yaml | 22 +---- .gitea/workflows/main.yaml | 108 +++++++++++++------------ .gitea/workflows/release-branch.yaml | 117 +++++++++++++++++++++++++++ 3 files changed, 178 insertions(+), 69 deletions(-) create mode 100644 .gitea/workflows/release-branch.yaml diff --git a/.gitea/workflows/dev-branch.yaml b/.gitea/workflows/dev-branch.yaml index c778ebaf..aa356dbf 100644 --- a/.gitea/workflows/dev-branch.yaml +++ b/.gitea/workflows/dev-branch.yaml @@ -17,16 +17,10 @@ env: jobs: Export: runs-on: ubuntu-latest - steps: - - name: Install node, xvfb, curl and zip + - name: Install node, xvfb and curl run: | - apt update && apt -y install curl zip nodejs xvfb - -# - name: Checkout with LFS -# uses: https://git.game-dev.space/minimata/checkout-with-lfs.git@main -# with: -# checkout-version: 3 + apt update && apt -y install curl nodejs xvfb - name: Checkout uses: actions/checkout@v6 @@ -42,11 +36,6 @@ jobs: 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: Setup dotnet -# uses: actions/setup-dotnet@v5 -# with: -# dotnet-version: '9.0.x' - name: Launch Godot uses: godot-gdunit-labs/gdUnit4-action@v1 @@ -69,9 +58,4 @@ jobs: uses: actions/upload-artifact@v3-node20 with: name: Test Report - path: ${{ github.workspace }}/reports/test-result.html - - - name: Build Windows - run: | - mkdir -v -p build/windows - /home/runner/godot-linux/godot --headless --verbose --build-solutions --export-release "Windows Desktop" build/windows/${{ env.GAME_NAME }}.exe \ No newline at end of file + path: ${{ github.workspace }}/reports/test-result.html \ No newline at end of file diff --git a/.gitea/workflows/main.yaml b/.gitea/workflows/main.yaml index ba01353a..c2e83ee4 100644 --- a/.gitea/workflows/main.yaml +++ b/.gitea/workflows/main.yaml @@ -19,7 +19,7 @@ jobs: tag_name: ${{ steps.bump-tag.outputs.new_tag }} steps: - name: Check out repository code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: lfs: false - name: Remove buggy pre-push hook @@ -35,6 +35,48 @@ jobs: PRERELEASE: false INITIAL_VERSION: 0.1.0 DEFAULT_BUMP: patch + + Test: + runs-on: ubuntu-latest + steps: + - name: Install node, xvfb and curl + run: | + apt update && apt -y install curl nodejs xvfb + + - 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: Launch Godot + uses: godot-gdunit-labs/gdUnit4-action@v1 + with: + godot-version: '4.5.1' + godot-net: true + godot-force-mono: true + dotnet-version: 'net9.0' + version: 'v6.0.3' + paths: | + res://tests/ + timeout: 1 + publish-report: false + upload-report: false + + - name: Upload test report + uses: actions/upload-artifact@v3-node20 + with: + name: Test Report + path: ${{ github.workspace }}/reports/test-result.html Export: runs-on: ubuntu-latest @@ -45,11 +87,22 @@ jobs: steps: - name: Install node, curl and zip run: | - apt update && apt -y install curl zip nodejs - - name: Checkout with LFS - uses: https://git.game-dev.space/minimata/checkout-with-lfs.git@main + apt update && apt -y install curl zip nodejs + + - name: Checkout + uses: actions/checkout@v6 with: - checkout-version: 3 + 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: | @@ -69,48 +122,3 @@ jobs: buildNumber: ${{ needs.BumpTag.outputs.tag_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.BumpTag.outputs.tag_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.BumpTag.outputs.tag_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.BumpTag.outputs.tag_name }} - gameData: Mac.zip - buildChannel: mac diff --git a/.gitea/workflows/release-branch.yaml b/.gitea/workflows/release-branch.yaml new file mode 100644 index 00000000..591ad7f2 --- /dev/null +++ b/.gitea/workflows/release-branch.yaml @@ -0,0 +1,117 @@ +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.5 + + 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