-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
376 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,131 @@ | ||
name: Godot CI/CD Pipeline | ||
|
||
on: [push, pull_request] | ||
|
||
env: | ||
GODOT_VERSION: "4.2.1" | ||
GODOT_STATUS: "stable" | ||
jobs: | ||
import-assets: | ||
runs-on: ubuntu-latest | ||
container: barichello/godot-ci:4.2.1 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Cache import assets | ||
uses: actions/cache@v3 | ||
with: | ||
path: .godot/imported/ | ||
key: import-assets-${{ runner.os }}-${{ github.sha }} | ||
- name: Import assets | ||
run: godot --headless --verbose --editor --quit | ||
|
||
export-game: | ||
runs-on: ubuntu-latest | ||
needs: import-assets | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/cache@v3 | ||
with: | ||
path: .godot/imported/ | ||
key: import-assets-${{ runner.os }}-${{ github.sha }} | ||
- name: install wine | ||
run: | | ||
sudo apt install wine64 | ||
echo "WINE_PATH=$(which wine64)" >> $GITHUB_ENV | ||
- name: Export Game using Godot | ||
uses: firebelley/[email protected] | ||
with: | ||
godot_executable_download_url: "https://github.com/godotengine/godot/releases/download/${{ env.GODOT_VERSION }}-${{ env.GODOT_STATUS }}/Godot_v${{ env.GODOT_VERSION }}-${{ env.GODOT_STATUS }}_linux.x86_64.zip" | ||
godot_export_templates_download_url: "https://github.com/godotengine/godot/releases/download/${{ env.GODOT_VERSION }}-${{ env.GODOT_STATUS }}/Godot_v${{ env.GODOT_VERSION }}-${{ env.GODOT_STATUS }}_export_templates.tpz" | ||
relative_project_path: "./godot" | ||
archive_output: true | ||
cache: false | ||
wine_path: ${{ env.WINE_PATH }} | ||
- name: Upload HTML5 | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: HTML5 | ||
path: /home/runner/.local/share/godot/archives/HTML5.zip | ||
- name: Upload Linux | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: LinuxX11 | ||
path: /home/runner/.local/share/godot/archives/LinuxX11.zip | ||
- name: Upload Windows | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: Windows | ||
path: /home/runner/.local/share/godot/archives/Windows.zip | ||
- name: Upload MacOS | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: macOS | ||
path: /home/runner/.local/share/godot/archives/macOS.zip | ||
|
||
deploy-to-itchio-linux: | ||
runs-on: ubuntu-latest | ||
needs: export-game | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: LinuxX11 | ||
- name: Deploy to Itch.io (Windows) | ||
uses: manleydev/butler-publish-itchio-action@master | ||
env: | ||
BUTLER_CREDENTIALS: ${{ secrets.BUTLER_API_KEY }} | ||
CHANNEL: linux | ||
ITCH_GAME: ${{ secrets.ITCHIO_GAME }} | ||
ITCH_USER: ${{ secrets.ITCHIO_USERNAME }} | ||
PACKAGE: LinuxX11.zip | ||
|
||
deploy-to-itchio-windows: | ||
runs-on: ubuntu-latest | ||
needs: export-game | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: Windows | ||
- name: Deploy to Itch.io (Windows) | ||
uses: manleydev/butler-publish-itchio-action@master | ||
env: | ||
BUTLER_CREDENTIALS: ${{ secrets.BUTLER_API_KEY }} | ||
CHANNEL: windows | ||
ITCH_GAME: ${{ secrets.ITCHIO_GAME }} | ||
ITCH_USER: ${{ secrets.ITCHIO_USERNAME }} | ||
PACKAGE: Windows.zip | ||
|
||
deploy-to-itchio-mac: | ||
runs-on: ubuntu-latest | ||
needs: export-game | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: macOS | ||
- name: Deploy to Itch.io (MacOS) | ||
uses: manleydev/butler-publish-itchio-action@master | ||
env: | ||
BUTLER_CREDENTIALS: ${{ secrets.BUTLER_API_KEY }} | ||
CHANNEL: mac | ||
ITCH_GAME: ${{ secrets.ITCHIO_GAME }} | ||
ITCH_USER: ${{ secrets.ITCHIO_USERNAME }} | ||
PACKAGE: macOS.zip | ||
|
||
deploy-to-itchio-web: | ||
runs-on: ubuntu-latest | ||
needs: export-game | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: HTML5 | ||
- name: Deploy to Itch.io (HTML5) | ||
uses: manleydev/butler-publish-itchio-action@master | ||
env: | ||
BUTLER_CREDENTIALS: ${{ secrets.BUTLER_API_KEY }} | ||
CHANNEL: web | ||
ITCH_GAME: ${{ secrets.ITCHIO_GAME }} | ||
ITCH_USER: ${{ secrets.ITCHIO_USERNAME }} | ||
PACKAGE: HTML5.zip |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,245 @@ | ||
[preset.0] | ||
|
||
name="LinuxX11" | ||
platform="Linux/X11" | ||
runnable=true | ||
dedicated_server=false | ||
custom_features="" | ||
export_filter="all_resources" | ||
include_filter="" | ||
exclude_filter="" | ||
export_path="./game.x86_64" | ||
encryption_include_filters="" | ||
encryption_exclude_filters="" | ||
encrypt_pck=false | ||
encrypt_directory=false | ||
|
||
[preset.0.options] | ||
|
||
custom_template/debug="" | ||
custom_template/release="" | ||
debug/export_console_wrapper=1 | ||
binary_format/embed_pck=false | ||
texture_format/bptc=true | ||
texture_format/s3tc=true | ||
texture_format/etc=false | ||
texture_format/etc2=false | ||
binary_format/architecture="x86_64" | ||
ssh_remote_deploy/enabled=false | ||
ssh_remote_deploy/host="user@host_ip" | ||
ssh_remote_deploy/port="22" | ||
ssh_remote_deploy/extra_args_ssh="" | ||
ssh_remote_deploy/extra_args_scp="" | ||
ssh_remote_deploy/run_script="#!/usr/bin/env bash | ||
export DISPLAY=:0 | ||
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" | ||
\"{temp_dir}/{exe_name}\" {cmd_args}" | ||
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash | ||
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") | ||
rm -rf \"{temp_dir}\"" | ||
|
||
[preset.1] | ||
|
||
name="Windows" | ||
platform="Windows Desktop" | ||
runnable=true | ||
dedicated_server=false | ||
custom_features="" | ||
export_filter="all_resources" | ||
include_filter="" | ||
exclude_filter="" | ||
export_path="./game.exe" | ||
encryption_include_filters="" | ||
encryption_exclude_filters="" | ||
encrypt_pck=false | ||
encrypt_directory=false | ||
|
||
[preset.1.options] | ||
|
||
custom_template/debug="" | ||
custom_template/release="" | ||
debug/export_console_wrapper=1 | ||
binary_format/embed_pck=false | ||
texture_format/bptc=true | ||
texture_format/s3tc=true | ||
texture_format/etc=false | ||
texture_format/etc2=false | ||
binary_format/architecture="x86_64" | ||
codesign/enable=false | ||
codesign/timestamp=true | ||
codesign/timestamp_server_url="" | ||
codesign/digest_algorithm=1 | ||
codesign/description="" | ||
codesign/custom_options=PackedStringArray() | ||
application/modify_resources=true | ||
application/icon="" | ||
application/console_wrapper_icon="" | ||
application/icon_interpolation=4 | ||
application/file_version="" | ||
application/product_version="" | ||
application/company_name="" | ||
application/product_name="" | ||
application/file_description="" | ||
application/copyright="" | ||
application/trademarks="" | ||
application/export_angle=0 | ||
ssh_remote_deploy/enabled=false | ||
ssh_remote_deploy/host="user@host_ip" | ||
ssh_remote_deploy/port="22" | ||
ssh_remote_deploy/extra_args_ssh="" | ||
ssh_remote_deploy/extra_args_scp="" | ||
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}' | ||
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}' | ||
$trigger = New-ScheduledTaskTrigger -Once -At 00:00 | ||
$settings = New-ScheduledTaskSettingsSet | ||
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings | ||
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true | ||
Start-ScheduledTask -TaskName godot_remote_debug | ||
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 } | ||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue" | ||
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue | ||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue | ||
Remove-Item -Recurse -Force '{temp_dir}'" | ||
|
||
[preset.2] | ||
|
||
name="HTML5" | ||
platform="Web" | ||
runnable=true | ||
dedicated_server=false | ||
custom_features="" | ||
export_filter="all_resources" | ||
include_filter="" | ||
exclude_filter="" | ||
export_path="./index.html" | ||
encryption_include_filters="" | ||
encryption_exclude_filters="" | ||
encrypt_pck=false | ||
encrypt_directory=false | ||
|
||
[preset.2.options] | ||
|
||
custom_template/debug="" | ||
custom_template/release="" | ||
variant/extensions_support=false | ||
vram_texture_compression/for_desktop=true | ||
vram_texture_compression/for_mobile=false | ||
html/export_icon=true | ||
html/custom_html_shell="" | ||
html/head_include="" | ||
html/canvas_resize_policy=2 | ||
html/focus_canvas_on_start=true | ||
html/experimental_virtual_keyboard=false | ||
progressive_web_app/enabled=false | ||
progressive_web_app/offline_page="" | ||
progressive_web_app/display=1 | ||
progressive_web_app/orientation=0 | ||
progressive_web_app/icon_144x144="" | ||
progressive_web_app/icon_180x180="" | ||
progressive_web_app/icon_512x512="" | ||
progressive_web_app/background_color=Color(0, 0, 0, 1) | ||
|
||
[preset.3] | ||
|
||
name="macOS" | ||
platform="macOS" | ||
runnable=true | ||
dedicated_server=false | ||
custom_features="" | ||
export_filter="all_resources" | ||
include_filter="" | ||
exclude_filter="" | ||
export_path="./game.zip" | ||
encryption_include_filters="" | ||
encryption_exclude_filters="" | ||
encrypt_pck=false | ||
encrypt_directory=false | ||
|
||
[preset.3.options] | ||
|
||
export/distribution_type=1 | ||
binary_format/architecture="universal" | ||
custom_template/debug="" | ||
custom_template/release="" | ||
debug/export_console_wrapper=1 | ||
application/icon="" | ||
application/icon_interpolation=4 | ||
application/bundle_identifier="org.godotengine" | ||
application/signature="" | ||
application/app_category="Games" | ||
application/short_version="" | ||
application/version="" | ||
application/copyright="" | ||
application/copyright_localized={} | ||
application/min_macos_version="10.12" | ||
application/export_angle=0 | ||
display/high_res=true | ||
xcode/platform_build="14C18" | ||
xcode/sdk_version="13.1" | ||
xcode/sdk_build="22C55" | ||
xcode/sdk_name="macosx13.1" | ||
xcode/xcode_version="1420" | ||
xcode/xcode_build="14C18" | ||
codesign/codesign=1 | ||
codesign/installer_identity="" | ||
codesign/apple_team_id="" | ||
codesign/identity="" | ||
codesign/entitlements/custom_file="" | ||
codesign/entitlements/allow_jit_code_execution=false | ||
codesign/entitlements/allow_unsigned_executable_memory=false | ||
codesign/entitlements/allow_dyld_environment_variables=false | ||
codesign/entitlements/disable_library_validation=false | ||
codesign/entitlements/audio_input=false | ||
codesign/entitlements/camera=false | ||
codesign/entitlements/location=false | ||
codesign/entitlements/address_book=false | ||
codesign/entitlements/calendars=false | ||
codesign/entitlements/photos_library=false | ||
codesign/entitlements/apple_events=false | ||
codesign/entitlements/debugging=false | ||
codesign/entitlements/app_sandbox/enabled=false | ||
codesign/entitlements/app_sandbox/network_server=false | ||
codesign/entitlements/app_sandbox/network_client=false | ||
codesign/entitlements/app_sandbox/device_usb=false | ||
codesign/entitlements/app_sandbox/device_bluetooth=false | ||
codesign/entitlements/app_sandbox/files_downloads=0 | ||
codesign/entitlements/app_sandbox/files_pictures=0 | ||
codesign/entitlements/app_sandbox/files_music=0 | ||
codesign/entitlements/app_sandbox/files_movies=0 | ||
codesign/entitlements/app_sandbox/files_user_selected=0 | ||
codesign/entitlements/app_sandbox/helper_executables=[] | ||
codesign/custom_options=PackedStringArray() | ||
notarization/notarization=0 | ||
privacy/microphone_usage_description="" | ||
privacy/microphone_usage_description_localized={} | ||
privacy/camera_usage_description="" | ||
privacy/camera_usage_description_localized={} | ||
privacy/location_usage_description="" | ||
privacy/location_usage_description_localized={} | ||
privacy/address_book_usage_description="" | ||
privacy/address_book_usage_description_localized={} | ||
privacy/calendar_usage_description="" | ||
privacy/calendar_usage_description_localized={} | ||
privacy/photos_library_usage_description="" | ||
privacy/photos_library_usage_description_localized={} | ||
privacy/desktop_folder_usage_description="" | ||
privacy/desktop_folder_usage_description_localized={} | ||
privacy/documents_folder_usage_description="" | ||
privacy/documents_folder_usage_description_localized={} | ||
privacy/downloads_folder_usage_description="" | ||
privacy/downloads_folder_usage_description_localized={} | ||
privacy/network_volumes_usage_description="" | ||
privacy/network_volumes_usage_description_localized={} | ||
privacy/removable_volumes_usage_description="" | ||
privacy/removable_volumes_usage_description_localized={} | ||
ssh_remote_deploy/enabled=false | ||
ssh_remote_deploy/host="user@host_ip" | ||
ssh_remote_deploy/port="22" | ||
ssh_remote_deploy/extra_args_ssh="" | ||
ssh_remote_deploy/extra_args_scp="" | ||
ssh_remote_deploy/run_script="#!/usr/bin/env bash | ||
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" | ||
open \"{temp_dir}/{exe_name}.app\" --args {cmd_args}" | ||
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash | ||
kill $(pgrep -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\") | ||
rm -rf \"{temp_dir}\"" |