feat/data-dnd e05cb15

release.yml RawHistoryFolder

1name: Release
2on:
3  push:
4    tags: ['v*']
5permissions:
6  contents: read
7concurrency:
8  group: release-${{ github.ref }}
9  cancel-in-progress: false
10jobs:
11  check:
12    uses: ./.github/workflows/ci.yml
13
14  release:
15    needs: check
16    runs-on: ubuntu-latest
17    permissions:
18      contents: write     # create the release
19      id-token: write     # sign the provenance attestation
20      attestations: write
21    steps:
22      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
23        with:
24          fetch-depth: 0
25          persist-credentials: false
26      - uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
27        with:
28          go-version-file: go.mod
29      - uses: goreleaser/goreleaser-action@f06c13b6b1a9625abc9e6e439d9c05a8f2190e94 # v7.2.3
30        with:
31          distribution: goreleaser
32          version: '~> v2'
33          # Snapshot first: the .deb is installed on Ubuntu before anything ships.
34          args: release --snapshot --clean --skip=aur
35      - name: Smoke-test the .deb on Ubuntu LTS
36        run: |
37          for v in 24.04 26.04; do
38            packaging/deb/smoke-test.sh "$v" dist/neferwl_*_amd64.deb
39          done
40      - uses: goreleaser/goreleaser-action@f06c13b6b1a9625abc9e6e439d9c05a8f2190e94 # v7.2.3
41        with:
42          distribution: goreleaser
43          version: '~> v2'
44          args: release --clean
45        env:
46          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
47      - uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2
48        with:
49          subject-path: |
50            dist/*.tar.gz
51            dist/*.deb
52            dist/checksums.txt
53      - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
54        with:
55          name: aur-bin
56          path: dist/aur/neferwl-bin.pkgbuild
57          if-no-files-found: error
58
59  # makepkg must run on Arch as a non-root user. publish.sh builds each
60  # package, verifies every source checksum, then pushes it.
61  aur:
62    needs: release
63    runs-on: ubuntu-latest
64    container:
65      image: archlinux:latest
66    strategy:
67      fail-fast: false
68      matrix:
69        pkg: [neferwl-bin, neferwl-git]
70    # Pre-releases (v0.2.0-rc1) stay off the AUR: pacman sorts 0.2.0.rc1
71    # after 0.2.0, so the final release would not look like an upgrade.
72    env:
73      SKIP: ${{ contains(github.ref_name, '-') }}
74    steps:
75      - run: >-
76          pacman -Syu --noconfirm --needed
77          base-devel git openssh sudo
78      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
79        with:
80          persist-credentials: false
81      - if: matrix.pkg == 'neferwl-bin' && env.SKIP != 'true'
82        uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
83        with:
84          name: aur-bin
85          path: aur-bin
86      - name: Create the build user
87        run: |
88          useradd -m builder
89          echo 'builder ALL=(root) NOPASSWD: /usr/bin/pacman' >/etc/sudoers.d/builder
90      - name: Build, verify and publish ${{ matrix.pkg }}
91        if: env.SKIP != 'true'
92        env:
93          AUR_SSH_PRIVATE_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
94          AUR_USERNAME: ${{ secrets.AUR_USERNAME }}
95          AUR_EMAIL: ${{ secrets.AUR_EMAIL }}
96          PKG: ${{ matrix.pkg }}
97        run: |
98          if [ "$PKG" = neferwl-bin ]; then
99            pkgbuild=aur-bin/neferwl-bin.pkgbuild
100          else
101            pkgbuild=packaging/aur/neferwl-git/PKGBUILD
102          fi
103          chmod -R a+rX "$GITHUB_WORKSPACE"
104          sudo -u builder --preserve-env=AUR_SSH_PRIVATE_KEY,AUR_USERNAME,AUR_EMAIL \
105            packaging/aur/publish.sh "$PKG" "$pkgbuild"

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 25

Tags 10

↑↓ moveenter openesc close