Files
transui/.gitea/workflows/build.yml
T
intelligence 7ed3adf208
Android / build-android (release) Successful in 3m39s
Build / build-amd64 (release) Successful in 43s
Build / build-arm64 (release) Successful in 1m32s
feat:building-with-version-number
2026-08-30 00:20:52 +02:00

132 lines
4.5 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
with:
submodules: recursive
- name: Set release version
if: gitea.event_name == 'release'
shell: bash
env:
TRANSUI_RELEASE_TAG: ${{ gitea.event.release.tag_name }}
run: |
version="${TRANSUI_RELEASE_TAG#v}"
if [[ ! "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "Release tag must use vMAJOR.MINOR.PATCH or MAJOR.MINOR.PATCH" >&2
exit 1
fi
echo "TRANSUI_VERSION=$version" >> "$GITEA_ENV"
- name: Install dependencies
run: |
apt-get update
apt-get install -y --no-install-recommends \
cmake g++ pkg-config python3 dpkg-dev libgtk-3-dev libcurl4-openssl-dev \
libgstreamer1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good libsecret-1-dev \
libjson-glib-dev wtype xdotool
- name: Configure
run: |
version_args=()
if [ -n "${TRANSUI_VERSION:-}" ]; then
version_args+=("-DCPACK_PACKAGE_VERSION=$TRANSUI_VERSION")
fi
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release "${version_args[@]}"
- name: Build
run: cmake --build build --parallel 2
- name: Package
run: |
cmake --build build --target package --parallel 2
mkdir -p artifacts
cp build/*.deb artifacts/
sha256sum artifacts/*.deb > artifacts/SHA256SUMS-amd64
- name: Attach packages to the Gitea release
if: gitea.event_name == 'release'
shell: bash
env:
GITEA_SERVER_URL: ${{ gitea.server_url }}
GITEA_REPOSITORY: ${{ gitea.repository }}
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
GITEA_RELEASE_TAG: ${{ gitea.event.release.tag_name }}
run: scripts/publish-release-assets.sh
- name: Upload Debian packages
if: always()
uses: christopherhx/gitea-upload-artifact@v4
with:
name: transui-debian-amd64
path: artifacts/
if-no-files-found: error
build-arm64:
runs-on: debian-latest-arm64
permissions:
contents: read
releases: write
env:
CMAKE_BUILD_PARALLEL_LEVEL: 2
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set release version
if: gitea.event_name == 'release'
shell: bash
env:
TRANSUI_RELEASE_TAG: ${{ gitea.event.release.tag_name }}
run: |
version="${TRANSUI_RELEASE_TAG#v}"
if [[ ! "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "Release tag must use vMAJOR.MINOR.PATCH or MAJOR.MINOR.PATCH" >&2
exit 1
fi
echo "TRANSUI_VERSION=$version" >> "$GITEA_ENV"
- name: Install dependencies
run: |
apt-get update
apt-get install -y --no-install-recommends \
cmake g++ pkg-config python3 dpkg-dev libgtk-3-dev libcurl4-openssl-dev \
libgstreamer1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good libsecret-1-dev \
libjson-glib-dev wtype xdotool
- name: Configure
run: |
version_args=()
if [ -n "${TRANSUI_VERSION:-}" ]; then
version_args+=("-DCPACK_PACKAGE_VERSION=$TRANSUI_VERSION")
fi
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release "${version_args[@]}"
- name: Build
run: cmake --build build --parallel 2
- name: Package
run: |
cmake --build build --target package --parallel 2
mkdir -p artifacts
cp build/*.deb artifacts/
sha256sum artifacts/*.deb > artifacts/SHA256SUMS-arm64
- name: Attach packages to the Gitea release
if: gitea.event_name == 'release'
shell: bash
env:
GITEA_SERVER_URL: ${{ gitea.server_url }}
GITEA_REPOSITORY: ${{ gitea.repository }}
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
GITEA_RELEASE_TAG: ${{ gitea.event.release.tag_name }}
run: scripts/publish-release-assets.sh
- name: Upload Debian packages
if: always()
uses: christopherhx/gitea-upload-artifact@v4
with:
name: transui-debian-arm64
path: artifacts/
if-no-files-found: error