gameflow-deck/.forgejo/workflows/build.yml

63 lines
2 KiB
YAML

name: Build and Upload Canary
on:
push:
tags:
- "v*.*.*"
workflow_dispatch:
jobs:
build:
runs-on: docker
container:
image: ghcr.io/catthehacker/ubuntu:js-22.04
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
persist-credentials: "true" # Optional; should be the default
- name: Checkout lfs
run: |
git lfs install --local
AUTH=$(git config --local http.${{ forge.server_url }}/.extraheader)
git config --local --unset http.${{ forge.server_url }}/.extraheader
git config --local http.${{ forge.server_url }}/${{ forge.repository }}.git/info/lfs/objects/batch.extraheader "$AUTH"
git lfs pull
# 1. FIX: Install system dependencies BEFORE setup-bun
- name: Install system dependencies
run: |
apt-get update
apt-get install -y unzip libstdc++6 libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxrandr2 libgbm1 libasound2
- name: Manual Bun Install
run: |
# Download and install via official script
curl -fsSL https://bun.sh/install | bash
# Manually add Bun to the PATH for subsequent steps
echo "BUN_INSTALL=$HOME/.bun" >> $GITHUB_ENV
echo "$HOME/.bun/bin" >> $GITHUB_PATH
# Force execution permissions just in case
chmod +x $HOME/.bun/bin/bun
# Verify it works immediately
$HOME/.bun/bin/bun --version
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Install 7zip (minimal)
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y p7zip-full
- name: Build Canary
run: bun run package:Linux
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: canary-build
path: build/linux
retention-days: 7