Skip to content

Debug Settings: Use 2 tabs for sections (#2072) #5305

Debug Settings: Use 2 tabs for sections (#2072)

Debug Settings: Use 2 tabs for sections (#2072) #5305

Workflow file for this run

# SPDX-FileCopyrightText: The Threadbare Authors
# SPDX-License-Identifier: MPL-2.0
name: "Build and Export Game"
on:
workflow_dispatch:
inputs:
build_flatpak:
description: "Also build a Flatpak bundle"
type: boolean
pull_request:
release:
types:
- published
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
env:
PCK_NAME: threadbare
jobs:
build:
name: Build for web
runs-on: ubuntu-latest
outputs:
linux-changed: ${{ steps.changes.outputs.linux }}
steps:
- name: Checkout
uses: actions/checkout@v6
with:
# TODO: can we use --filter to avoid fetching the trees & blobs for
# all historical commits, while still fetching the commit history &
# tags?
fetch-depth: 0
fetch-tags: true
- name: Create Git LFS file list
run: git lfs ls-files -l |cut -d' ' -f1 |sort >.git/lfs-hashes.txt
- name: Restore Git LFS object cache
uses: actions/cache@v5
with:
path: .git/lfs
key: ${{ runner.os }}-lfsdata-v1-${{ hashFiles('.git/lfs-hashes.txt') }}
restore-keys: |
${{ runner.os }}-lfsdata-v1-
${{ runner.os }}-lfsdata
- name: Fetch any needed Git LFS objects and prune extraneous ones
run: git lfs fetch --prune
- name: Check out Git LFS content
run: git lfs checkout
- id: changes
uses: dorny/paths-filter@v4
with:
filters: |
linux:
- 'linux/**'
- .github/workflows/export.yml
- name: Export web build
uses: endlessm/godot-export-action@v1
with:
godot_version: "4.6.1"
- name: Check GDScript diagnostics
run: |
python tools/check-gdscript-lsp-diagnostics.py --godot build/godot || \
echo "::warning::GDScript diagnostics check failed (exit code $?)"
- name: Upload web artifact
uses: actions/upload-artifact@v7
with:
name: web
path: build/web
flatpak:
name: Build Flatpak
needs: build
if: ${{ inputs.build_flatpak || github.event_name == 'release' || needs.build.outputs.linux-changed == 'true' }}
runs-on: ubuntu-latest
container:
image: ghcr.io/flathub-infra/flatpak-github-actions:freedesktop-25.08
options: --privileged
steps:
- uses: actions/checkout@v6
with:
lfs: true
sparse-checkout: |
linux
- name: Download Artifact
uses: actions/download-artifact@v8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
name: web
path: build
- name: Rename pck file
run: |
mv build/index.pck build/threadbare.pck
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
bundle: threadbare.flatpak
manifest-path: linux/org.endlessaccess.threadbare.yml
cache-key: "flatpak-builder-${{ github.sha }}"
- name: Create Linux metadata bundle
run: |
tar --create --gzip \
--dereference \
--file threadbare-linux-metadata.tar.gz \
--transform=s,^,threadbare-linux-metadata/, \
linux/*
- name: Upload Linux metadata bundle
uses: actions/upload-artifact@v7
with:
path: threadbare-linux-metadata.tar.gz
archive: false
release:
name: Attach to release
needs: [build, flatpak]
if: ${{ github.event_name == 'release' }}
runs-on: ubuntu-latest
steps:
- name: Download web bundle
uses: actions/download-artifact@v8
with:
name: web
path: web
- name: Attach PCK
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
cp web/index.pck '${{ env.PCK_NAME }}-${{ github.ref_name }}.pck'
gh release upload '${{ github.ref_name }}' '${{ env.PCK_NAME }}-${{ github.ref_name }}.pck' --repo '${{ github.repository }}'
- name: Download Flatpak bundle
uses: actions/download-artifact@v8
with:
name: threadbare-x86_64.flatpak
- name: Attach Flatpak bundle to release
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
mv threadbare.flatpak 'threadbare-${{ github.ref_name }}-x86_64.flatpak'
gh release upload '${{ github.ref_name }}' 'threadbare-${{ github.ref_name }}-x86_64.flatpak' --repo '${{ github.repository }}'
- name: Attach web bundle to release
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
pushd web
zip -r "../threadbare-${{ github.ref_name }}-web.zip" .
popd
gh release upload '${{ github.ref_name }}' 'threadbare-${{ github.ref_name }}-web.zip' --repo '${{ github.repository }}'
- name: Download Linux metadata bundle
uses: actions/download-artifact@v8
with:
name: threadbare-linux-metadata
- name: Attach Linux metadata bundle to release
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
mv threadbare-linux-metadata.tar.gz 'threadbare-${{ github.ref_name }}-linux-metadata.tar.gz'
gh release upload '${{ github.ref_name }}' 'threadbare-${{ github.ref_name }}-linux-metadata.tar.gz' --repo '${{ github.repository }}'