chore: improving repo hygiene #15
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
name: Release Packaging | |
on: | |
workflow_dispatch: | |
# Ensure the build works on main | |
push: | |
branches: [main] | |
tags: ['*'] | |
# Ensure the build works on each pull request | |
pull_request: | |
env: | |
BRANCH_NAME: ${{ github.head_ref || github.ref_name }} | |
jobs: | |
check: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: extractions/setup-just@v2 | |
- name: Load dotenv | |
run: just ci-load-dotenv | |
- name: Check | |
run: just fmt | |
- name: Ensure version is equal to tag | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
[ "${{ env.game_version }}" == "${{ env.BRANCH_NAME }}" ] || exit 2 | |
build: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
needs: [check] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: extractions/setup-just@v2 | |
- name: Load dotenv | |
run: just ci-load-dotenv | |
- name: Cache Godot | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.mkflower/bin | |
~/.local/share/godot/export_templates | |
key: ${{ env.godot_version }} | |
- name: Export | |
run: just export | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.game_name }}-v${{ env.game_version }} | |
path: dist/* | |
retention-days: 1 | |
publish: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 30 | |
needs: [build] | |
if: startsWith(github.ref, 'refs/tags/') | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: extractions/setup-just@v2 | |
- name: Load dotenv | |
run: just ci-load-dotenv | |
- name: Download artifact | |
uses: dawidd6/action-download-artifact@v3 | |
with: | |
workflow: ${{ github.event.workflow_run.workflow_id }} | |
name: ${{ env.game_name }}-v${{ env.game_version }} | |
path: dist/ | |
skip_unpack: false | |
- name: Publish | |
run: just ci-publish | |
env: | |
BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }} | |
GITHUB_TOKEN: ${{ secrets.PAT }} |