summaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml67
1 files changed, 48 insertions, 19 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 46a106a1..a6a56f39 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,32 +1,59 @@
name: Builder
on:
- push:
- pull_request:
workflow_call:
- # schedule:
- # - cron: '0 13 * * *' # run at 1 PM UTC
+ inputs:
+ arch:
+ description: Architecture to build for (x86_64, arm64)
+ type: string
+ default: x86_64
+ os:
+ description: OS to build for (Linux, macOS, Windows)
+ type: string
+ default: Linux
+ artifact_name:
+ description: Name of the uploaded artifact
+ type: string
+ default: PluginLoader
+ binary_name:
+ description: Name of the PluginLoader binary
+ type: string
+ default: PluginLoader
+ noconsole:
+ description: If the windows build is no-console
+ type: boolean
+ default: false
jobs:
build:
- name: Build PluginLoader
- runs-on: ubuntu-22.04
+ name: Build ${{ inputs.artifact_name }} (${{ inputs.os }} ${{ inputs.arch }})
+ # No support for mac x86, sorry
+ runs-on: ${{
+ (inputs.os == 'Linux' && inputs.arch == 'arm64' && 'ubuntu-26.04-arm') ||
+ (inputs.os == 'Linux' && inputs.arch == 'x86_64' && 'ubuntu-26.04') ||
+ (inputs.os == 'macOS' && inputs.arch == 'arm64' && 'xcode-27') ||
+ (inputs.os == 'Windows' && inputs.arch == 'arm64' && 'windows-11-arm') ||
+ (inputs.os == 'Windows' && inputs.arch == 'x86_64' && 'windows-2025')
+ }}
+ defaults:
+ run:
+ shell: bash
steps:
- name: Checkout 🧰
- uses: actions/checkout@v4
+ uses: actions/checkout@v7
with:
fetch-depth: 0
- - name: Set up NodeJS 20 💎
- uses: actions/setup-node@v4
+ - name: Set up NodeJS 26 💎
+ uses: actions/setup-node@v7
with:
- node-version: 20
+ node-version: 26
- - name: Set up Python 3.11.7 🐍
- uses: actions/setup-python@v5
+ - name: Set up Python 3.14.8 🐍
+ uses: actions/setup-python@v7
with:
- python-version: "3.11.7"
+ python-version: "3.14.8"
- name: Install Poetry
uses: snok/install-poetry@v1
@@ -53,17 +80,19 @@ jobs:
working-directory: ./backend
run: |
poetry dynamic-versioning
- pyinstaller pyinstaller.spec
+ DECKY_REPO="${{ github.repository }}" DECKY_BRANCH="${{ github.event.number && format('PR{0}/{1}', github.event.number, github.head_ref) || github.ref_name }}" ${{ inputs.noconsole == true && 'DECKY_NOCONSOLE=1 ' || '' }}pyinstaller pyinstaller.spec
+ echo Builds:
+ ls ./dist
- name: Upload package artifact ⬆️
if: ${{ !env.ACT }}
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v7
with:
- name: PluginLoader
- path: ./backend/dist/PluginLoader
+ name: ${{ inputs.artifact_name }}
+ path: ./backend/dist/${{ inputs.binary_name }}
- name: Download package artifact locally
if: ${{ env.ACT }}
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v7
with:
- path: ./backend/dist/PluginLoader
+ path: ./backend/dist/${{ inputs.binary_name }}