feat: add support for snap packages (#531)

This commit is contained in:
Julian Chen 2024-01-18 00:20:45 +08:00 committed by GitHub
parent 6145bc38dc
commit 4647ec0dd0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 40 additions and 1 deletions

View File

@ -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

33
snap/snapcraft.yaml Normal file
View File

@ -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/