feat: configurable border for the which component (#4189) #1513
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Draft | |
| on: | |
| push: | |
| branches: [main] | |
| tags: ["v[0-9]+.[0-9]+.[0-9]+"] | |
| workflow_dispatch: | |
| env: | |
| SCCACHE_GHA_ENABLED: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| build-unix: | |
| strategy: | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| target: x86_64-unknown-linux-gnu | |
| - os: ubuntu-latest | |
| target: aarch64-unknown-linux-gnu | |
| gcc: gcc-aarch64-linux-gnu | |
| - os: ubuntu-latest | |
| target: i686-unknown-linux-gnu | |
| gcc: gcc-i686-linux-gnu | |
| - os: ubuntu-latest | |
| target: riscv64gc-unknown-linux-gnu | |
| gcc: gcc-riscv64-linux-gnu | |
| - os: ubuntu-latest | |
| target: sparc64-unknown-linux-gnu | |
| gcc: gcc-sparc64-linux-gnu | |
| - os: macos-latest | |
| target: x86_64-apple-darwin | |
| - os: macos-latest | |
| target: aarch64-apple-darwin | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc | |
| CARGO_TARGET_I686_UNKNOWN_LINUX_GNU_LINKER: i686-linux-gnu-gcc | |
| CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_LINKER: riscv64-linux-gnu-gcc | |
| CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_LINKER: sparc64-linux-gnu-gcc | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install gcc | |
| if: matrix.gcc != '' | |
| run: sudo apt update && sudo apt install -yq ${{ matrix.gcc }} | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: ${{ matrix.target }} | |
| - name: Setup sccache | |
| uses: mozilla-actions/sccache-action@v0.0.10 | |
| - name: Build | |
| run: ./scripts/build.sh ${{ matrix.target }} | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ matrix.target }} | |
| path: | | |
| yazi-${{ matrix.target }}.zip | |
| yazi-${{ matrix.target }}.deb | |
| build-windows: | |
| strategy: | |
| matrix: | |
| include: | |
| - os: windows-latest | |
| target: x86_64-pc-windows-msvc | |
| - os: windows-latest | |
| target: aarch64-pc-windows-msvc | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| RUSTC_WRAPPER: sccache | |
| YAZI_GEN_COMPLETIONS: true | |
| CARGO_TARGET_X86_64_PC_WINDOWS_MSVC_LINKER: lld-link.exe | |
| CARGO_TARGET_AARCH64_PC_WINDOWS_MSVC_LINKER: lld-link.exe | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: ${{ matrix.target }} | |
| - name: Setup sccache | |
| uses: mozilla-actions/sccache-action@v0.0.10 | |
| - name: Build | |
| run: cargo build --profile release-windows --locked --target ${{ matrix.target }} | |
| - name: Pack artifact | |
| env: | |
| TARGET_NAME: yazi-${{ matrix.target }} | |
| run: | | |
| New-Item -ItemType Directory -Path "${env:TARGET_NAME}\completions" | |
| Copy-Item -Path "target\${{ matrix.target }}\release-windows\ya.exe" -Destination ${env:TARGET_NAME} | |
| Copy-Item -Path "target\${{ matrix.target }}\release-windows\yazi.exe" -Destination ${env:TARGET_NAME} | |
| Copy-Item -Path "yazi-cli\completions\*" -Destination "${env:TARGET_NAME}\completions" | |
| Copy-Item -Path "yazi-boot\completions\*" -Destination "${env:TARGET_NAME}\completions" | |
| Copy-Item -Path "README.md", "LICENSE" -Destination ${env:TARGET_NAME} | |
| Compress-Archive -Path ${env:TARGET_NAME} -DestinationPath "${env:TARGET_NAME}.zip" | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ matrix.target }} | |
| path: yazi-${{ matrix.target }}.zip | |
| build-musl: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| include: | |
| - target: x86_64-unknown-linux-musl | |
| - target: aarch64-unknown-linux-musl | |
| container: | |
| image: docker://ghcr.io/cross-rs/${{ matrix.target }}:edge | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: ${{ matrix.target }} | |
| - name: Setup sccache | |
| uses: mozilla-actions/sccache-action@v0.0.10 | |
| - name: Build | |
| run: ./scripts/build.sh ${{ matrix.target }} | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ matrix.target }} | |
| path: | | |
| yazi-${{ matrix.target }}.zip | |
| yazi-${{ matrix.target }}.deb | |
| build-snap: | |
| strategy: | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| arch: amd64 | |
| - os: ubuntu-24.04-arm | |
| arch: arm64 | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup LXD | |
| uses: canonical/setup-lxd@v1 | |
| - name: Setup snapcraft | |
| run: sudo snap install --classic snapcraft | |
| - name: Build snap | |
| run: snapcraft --verbose | |
| - name: Rename snap | |
| run: mv yazi_*.snap yazi-${{ matrix.arch }}.snap | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: snap-${{ matrix.arch }} | |
| path: yazi-${{ matrix.arch }}.snap | |
| snap: | |
| runs-on: ubuntu-latest | |
| needs: [build-snap] | |
| steps: | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| pattern: snap-* | |
| merge-multiple: true | |
| - name: Setup snapcraft | |
| run: sudo snap install --classic snapcraft | |
| - name: Push snap to candidate channel | |
| if: startsWith(github.ref, 'refs/tags/') | |
| env: | |
| SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_TOKEN }} | |
| run: | | |
| parallel 'snapcraft upload -v --release latest/candidate {}' ::: yazi-*.snap || true | |
| - name: Push snap to edge channel | |
| if: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
| env: | |
| SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_TOKEN }} | |
| run: | | |
| parallel 'snapcraft upload -v --release latest/edge {}' ::: yazi-*.snap || true | |
| draft: | |
| if: startsWith(github.ref, 'refs/tags/') | |
| permissions: | |
| contents: write | |
| runs-on: ubuntu-latest | |
| needs: [build-unix, build-windows, build-musl, build-snap] | |
| steps: | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| merge-multiple: true | |
| - name: Draft | |
| uses: softprops/action-gh-release@v3 | |
| with: | |
| draft: true | |
| files: | | |
| yazi-*.zip | |
| yazi-*.deb | |
| yazi-*.snap | |
| generate_release_notes: true | |
| nightly: | |
| if: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
| permissions: | |
| contents: write | |
| runs-on: ubuntu-latest | |
| needs: [build-unix, build-windows, build-musl, build-snap] | |
| steps: | |
| - run: | | |
| echo 'NIGHTLY_BODY<<EOF' >> $GITHUB_ENV | |
| echo "From commit: ${GITHUB_SHA:0:8}" >> $GITHUB_ENV | |
| echo "Generated on: $(date -u +"%Y-%m-%d %H:%M") UTC" >> $GITHUB_ENV | |
| echo "Nightly changelog: https://github.com/sxyazi/yazi/blob/main/CHANGELOG.md#unreleased" >> $GITHUB_ENV | |
| echo "EOF" >> $GITHUB_ENV | |
| - uses: actions/checkout@v7 | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| merge-multiple: true | |
| - name: Update the tag | |
| run: | | |
| git config user.name "github-actions[bot]" | |
| git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
| git tag --force nightly && git push --force origin tag nightly | |
| - name: Nightly | |
| uses: softprops/action-gh-release@v3 | |
| with: | |
| tag_name: nightly | |
| prerelease: true | |
| files: | | |
| yazi-*.zip | |
| yazi-*.deb | |
| yazi-*.snap | |
| name: Nightly Build | |
| body: ${{ env.NIGHTLY_BODY }} | |
| target_commitish: ${{ github.sha }} | |
| - name: Publish APT nightly | |
| uses: peter-evans/repository-dispatch@v4 | |
| with: | |
| token: ${{ secrets.BUILDS_TOKEN }} | |
| repository: yazi-rs/builds | |
| event-type: publish-apt |