Files
transui/.gitea/workflows/build.yml
T
2026-08-14 13:07:22 +02:00

100 lines
3.3 KiB
YAML

name: Build
on:
release:
types: [published]
workflow_dispatch:
jobs:
build-amd64:
runs-on: debian-latest
permissions:
contents: read
releases: write
env:
CMAKE_BUILD_PARALLEL_LEVEL: 2
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
apt-get update
apt-get install -y --no-install-recommends \
cmake g++ pkg-config dpkg-dev libgtk-3-dev libcurl4-openssl-dev \
libgstreamer1.0-dev gstreamer1.0-plugins-good libsecret-1-dev \
libjson-glib-dev wtype xdotool
- name: Configure
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
- name: Build
run: cmake --build build --parallel 2
- name: Package
run: |
cmake --build build --target package --parallel 2
mkdir -p dist
cp build/*.deb dist/
- name: Store package
if: ${{ gitea.event_name == 'workflow_dispatch' }}
uses: actions/upload-artifact@v4
with:
name: transui-deb-amd64
path: dist/*.deb
if-no-files-found: error
- name: Upload release package
if: ${{ gitea.event_name == 'release' }}
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
RELEASE_ID: ${{ gitea.event.release.id }}
RELEASE_URL: ${{ gitea.api_url }}/repos/${{ gitea.repository }}/releases/${{ gitea.event.release.id }}/assets
run: |
for package in dist/*.deb; do
curl --fail-with-body --request POST \
--header "Authorization: token ${GITEA_TOKEN}" \
--form "attachment=@${package}" \
"${RELEASE_URL}"
done
build-arm64:
runs-on: debian-latest-arm64
permissions:
contents: read
releases: write
env:
CMAKE_BUILD_PARALLEL_LEVEL: 2
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
apt-get update
apt-get install -y --no-install-recommends \
cmake g++ pkg-config dpkg-dev libgtk-3-dev libcurl4-openssl-dev \
libgstreamer1.0-dev gstreamer1.0-plugins-good libsecret-1-dev \
libjson-glib-dev wtype xdotool
- name: Configure
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
- name: Build
run: cmake --build build --parallel 2
- name: Package
run: |
cmake --build build --target package --parallel 2
mkdir -p dist
cp build/*.deb dist/
- name: Store package
if: ${{ gitea.event_name == 'workflow_dispatch' }}
uses: actions/upload-artifact@v4
with:
name: transui-deb-arm64
path: dist/*.deb
if-no-files-found: error
- name: Upload release package
if: ${{ gitea.event_name == 'release' }}
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
RELEASE_ID: ${{ gitea.event.release.id }}
RELEASE_URL: ${{ gitea.api_url }}/repos/${{ gitea.repository }}/releases/${{ gitea.event.release.id }}/assets
run: |
for package in dist/*.deb; do
curl --fail-with-body --request POST \
--header "Authorization: token ${GITEA_TOKEN}" \
--form "attachment=@${package}" \
"${RELEASE_URL}"
done