diff options
| author | Djihads80 <mahboubijoujou111@gmail.com> | 2026-10-31 22:55:22 +0100 |
|---|---|---|
| committer | Djihads80 <mahboubijoujou111@gmail.com> | 2026-10-31 22:55:22 +0100 |
| commit | e0a58c7364cab0c21ea3ce5170499e7b033fca3b (patch) | |
| tree | a3b43dabd15ca23e28110acfc4bfd73d7198b602 /.github/workflows/release-binaries.yml | |
| parent | 919368bec2bfbf8ee4162d6e386049cdf6651bd8 (diff) | |
Added tarbal packaging in actions
Diffstat (limited to '.github/workflows/release-binaries.yml')
| -rw-r--r-- | .github/workflows/release-binaries.yml | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml index 849202f788..019d17584c 100644 --- a/.github/workflows/release-binaries.yml +++ b/.github/workflows/release-binaries.yml @@ -294,6 +294,21 @@ jobs: cmake --build build/release --target yuzu yuzu-cmd --parallel ccache --show-stats + # Plain tar.gz with the two programs. GitHub artifacts drop the executable bit, so a tar is + # what keeps it. This one is not self-contained: it needs Qt 6 and the usual libraries + # installed on the system. + - name: Package Linux tar.gz + if: startsWith(matrix.platform, 'linux') + shell: bash + run: | + set -euo pipefail + test -x build/release/bin/eglantine + test -x build/release/bin/eden-cli + strip build/release/bin/eglantine build/release/bin/eden-cli + tar -czf "eglantine-${GITHUB_SHA}-${{ matrix.platform }}.tar.gz" \ + -C build/release/bin eglantine eden-cli + ls -la "eglantine-${GITHUB_SHA}-${{ matrix.platform }}.tar.gz" + # A self-contained AppImage: linuxdeploy bundles every library the two programs need except # the base system ones (glibc, X11/Wayland client libraries, the GPU driver and Vulkan loader), # and its Qt plugin adds the Qt libraries and platform plugins. Runs on glibc 2.39+ systems. @@ -398,12 +413,15 @@ jobs: if-no-files-found: error retention-days: 7 + # Both Linux files go in one artifact: the tar.gz and the AppImage. - name: Upload Linux binary if: startsWith(matrix.platform, 'linux') uses: actions/upload-artifact@v4 with: name: eglantine-${{ matrix.platform }}-${{ github.sha }} - path: eglantine-${{ github.sha }}-${{ matrix.platform }}.AppImage + path: | + eglantine-${{ github.sha }}-${{ matrix.platform }}.tar.gz + eglantine-${{ github.sha }}-${{ matrix.platform }}.AppImage if-no-files-found: error compression-level: 0 retention-days: 7 @@ -433,7 +451,8 @@ jobs: for artifact in artifacts/*/; do name=$(basename "$artifact") if compgen -G "$artifact*.AppImage" > /dev/null; then - cp "$artifact"/*.AppImage dist/ + # Linux: ship the AppImage and the tar.gz as they are. + cp "$artifact"/*.AppImage "$artifact"/*.tar.gz dist/ else (cd "$artifact" && zip -qr "${GITHUB_WORKSPACE}/dist/${name}.zip" .) fi @@ -453,5 +472,6 @@ jobs: --notes "Automatic build of ${GITHUB_REF_NAME} at ${GITHUB_SHA}. Windows: extract the zip and run eglantine.exe, or eden-cli.exe from a terminal. - Linux: make the AppImage executable (chmod +x) and run it; it bundles its libraries and needs glibc 2.39 or newer (Ubuntu 24.04, Fedora 40, Debian 13, Arch). + Linux (AppImage): make it executable (chmod +x) and run it; it bundles its libraries and needs glibc 2.39 or newer (Ubuntu 24.04, Fedora 40, Debian 13, Arch). + Linux (tar.gz): extract it and run ./eglantine or ./eden-cli; it uses your system libraries, so Qt 6 and the usual libraries must be installed. The -pgo builds are the same programs compiled with profile-guided optimization (clang plus Eden's profile); prefer them when your CPU supports it. The Windows PGO build is a MinGW build, so it carries its own DLLs and needs no Visual C++ redistributable." |
