Files
AcWeb/.gitea/workflows/BuildLinux.yml
T
florian f98f4521c2
Build Android Apk / android (release) Failing after 8m29s
Build Linux Application / linux (release) Failing after 1m6s
Publish Docker Image / docker (release) Failing after 10m17s
Adding gitea build scripts for Android, Linux GUI and dockerized website
2026-09-01 14:59:13 +02:00

76 lines
2.5 KiB
YAML

name: Build Linux Application
# Only a release built through "Releases -> New Release" starts a build. A tag
# pushed with plain git does not publish a release and is therefore ignored.
on:
release:
types:
- published
env:
# Keep in sync with the other workflows and with `ac_web/Dockerfile`.
FLUTTER_VERSION: '3.44.9'
jobs:
linux:
runs-on: ubuntu-latest
# Same base image as the docker job, it already brings the tools the
# actions below expect (git, curl, unzip, node).
container:
image: catthehacker/ubuntu:act-latest
# The flutter project lives in a sub directory of the repository.
defaults:
run:
working-directory: ac_web
steps:
- name: Checkout
uses: https://github.com/actions/checkout@v4
# The flutter tool runs git inside the workspace, which the container
# user does not own after the checkout.
- name: Trust the workspace
run: git config --global --add safe.directory '*'
# Everything `flutter build linux` needs to compile the gtk runner.
- name: Install the linux desktop toolchain
run: |
apt-get update
apt-get install -y --no-install-recommends \
clang cmake ninja-build pkg-config \
libgtk-3-dev liblzma-dev libstdc++-12-dev \
curl unzip xz-utils
- name: Set up Flutter
uses: https://github.com/subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: stable
cache: true
- name: Install dependencies
run: flutter pub get
- name: Run tests
run: flutter test
- name: Build the linux application
run: flutter build linux --release
# The build produces a directory, not a single file: the executable next
# to the flutter engine and its data. It is packed so that the artifact
# keeps the executable bit.
- name: Pack the bundle
run: tar -czf ac_web-linux-x64-${{ github.ref_name }}.tar.gz -C build/linux/x64/release bundle
# Artifacts of v4 need gitea 1.22 or newer, older instances need @v3.
- name: Upload the bundle
uses: https://github.com/actions/upload-artifact@v4
with:
name: ac_web-linux-x64-${{ github.ref_name }}
# Artifact paths are relative to the repository, not to the
# working-directory above.
path: ac_web/ac_web-linux-x64-${{ github.ref_name }}.tar.gz
if-no-files-found: error