From 4647ec0dd08e6ccae260a4f26f04d59e73c64832 Mon Sep 17 00:00:00 2001 From: Julian Chen Date: Thu, 18 Jan 2024 00:20:45 +0800 Subject: [PATCH] feat: add support for snap packages (#531) --- .github/workflows/release.yml | 8 +++++++- snap/snapcraft.yaml | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 snap/snapcraft.yaml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1d983ba2..d29af206 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -51,6 +51,10 @@ jobs: CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: /usr/bin/aarch64-linux-gnu-gcc run: cargo build --release --locked --target ${{ matrix.target }} + - name: Build snap + if: matrix.target == 'x86_64-unknown-linux-gnu' + uses: snapcore/action-build@v1 + - name: Pack artifacts [Linux & macOS] if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' env: @@ -78,5 +82,7 @@ jobs: if: startsWith(github.ref, 'refs/tags/') with: draft: true - files: yazi-${{ matrix.target }}.zip + files: | + yazi-${{ matrix.target }}.zip + yazi*.snap generate_release_notes: true diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml new file mode 100644 index 00000000..a1e0bcc3 --- /dev/null +++ b/snap/snapcraft.yaml @@ -0,0 +1,33 @@ +name: yazi +base: core22 +adopt-info: yazi +summary: Blazing fast terminal file manager written in Rust, based on async I/O. +description: | + Yazi is a terminal file manager written in Rust, based on non-blocking async I/O. + It aims to provide an efficient, user-friendly, and customizable file management experience. +license: MIT +grade: stable +confinement: classic + +architectures: + - amd64 + # - arm64 + +apps: + yazi: + command: yazi + environment: + PATH: $SNAP/bin:$PATH + +parts: + yazi: + plugin: rust + source: https://github.com/sxyazi/yazi.git + override-build: | + craftctl default + craftctl set version=$(git describe --tags --abbrev=0) + cargo install fd-find --root $CRAFT_PART_INSTALL + cargo install ripgrep --root $CRAFT_PART_INSTALL + cargo install zoxide --root $CRAFT_PART_INSTALL + git clone --depth 1 https://github.com/junegunn/fzf.git fzf + fzf/install --bin && mv fzf/bin/fzf $CRAFT_PART_INSTALL/bin/