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