sqzass.git

sqzass

~ A static site generator written in Rust
git clone https://github.com/debuman/sqzass.git
commit f2732eb8767e3b339687bf50ea1f549ace44b4c7
parent 388107b49d085ebd8870f85e11c8665a30132802
Author: sqzer <110329244+sqzer-x@users.noreply.github.com>
Date: Fri, 31 Jul 2026 22:07:07 +0900

릴리스에 태그 없는 이름의 아티팩트 사본을 붙인다

배포 안내서 여섯이 전부
`releases/latest/download/sqzass-x86_64-unknown-linux-musl.tar.gz`를 쓰는데,
Package 스텝이 만드는 이름은 `sqzass-<태그>-<타깃>.tar.gz`다. 태그가 파일명에
박혀 있으니 그 URL은 존재한 적이 없는 파일을 가리켰고, netlify·vercel·
cloudflare·gitlab·codeberg 안내서를 그대로 따라 한 사람은 curl 단계에서 404를
받았다.

`latest/download/<파일명>`은 파일명이 릴리스마다 같아야 쓸 수 있다. 고칠 곳을
문서 열두 군데로 잡으면 릴리스마다 열두 군데를 다시 고쳐야 하므로, 대신 태그
없는 이름의 사본을 하나 더 낸다. 태그 붙은 이름은 그대로 둔다 — install.sh가
그 이름을 조립하고, 사본은 순수 추가다.

v0.1.0은 이미 나갔으므로 같은 사본을 손으로 올려 두었다. tar 안의 디렉터리는
여전히 태그를 갖지만 문서가 쓰는 --strip-components=1이 이름과 무관하게
벗겨내므로 영향 없다. 문서의 curl 명령을 그대로 실행해 200과 정상 압축 해제,
`sqzass 0.1.0`까지 확인했다.

installation은 `latest/download/sqzass-v0.1.0-...`이라 지금은 되지만 다음
릴리스에서 같은 이유로 깨진다. 같이 고정 이름으로 옮긴다.

Diffstat:
M.github/workflows/release.yml | 13+++++++++++++
Mdocs/content/start/installation.ko.md | 4++--
Mdocs/content/start/installation.md | 4++--
3 files changed, 17 insertion(+), 4 deletion(-)

diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
@@ -74,12 +74,23 @@ jobs:
           (cd dist && shasum -a 256 "$name.tar.gz" > "$name.tar.gz.sha256")
           echo "archive=dist/$name.tar.gz" >> "$GITHUB_OUTPUT"
 
+          # `releases/latest/download/<파일명>`은 파일명이 릴리스마다 같아야 쓸 수
+          # 있는데 위 이름에는 태그가 박혀 있다. 배포 안내서들이 바로 그 URL을
+          # 쓰므로 태그 없는 이름의 사본도 낸다. 태그 붙은 쪽은 그대로 둔다 —
+          # install.sh가 그 이름을 조립하고, 사본은 순수 추가다.
+          stable="sqzass-${{ matrix.target }}"
+          cp "dist/$name.tar.gz" "dist/$stable.tar.gz"
+          (cd dist && shasum -a 256 "$stable.tar.gz" > "$stable.tar.gz.sha256")
+          echo "stable=dist/$stable.tar.gz" >> "$GITHUB_OUTPUT"
+
       - uses: actions/upload-artifact@v5
         with:
           name: ${{ matrix.target }}
           path: |
             ${{ steps.package.outputs.archive }}
             ${{ steps.package.outputs.archive }}.sha256
+            ${{ steps.package.outputs.stable }}
+            ${{ steps.package.outputs.stable }}.sha256
 
       # 릴리스는 태그일 때만. 수동 실행은 "빌드가 되는지"를 확인하는 용도이고,
       # 그때 릴리스가 생기면 확인이 부작용을 갖게 된다.
@@ -90,4 +101,6 @@ jobs:
           files: |
             ${{ steps.package.outputs.archive }}
             ${{ steps.package.outputs.archive }}.sha256
+            ${{ steps.package.outputs.stable }}
+            ${{ steps.package.outputs.stable }}.sha256
           generate_release_notes: true
diff --git a/docs/content/start/installation.ko.md b/docs/content/start/installation.ko.md
@@ -59,8 +59,8 @@ cargo build --release --no-default-features --features pure-rust
 `.sha256`이 옆에 있습니다.
 
 ```bash
-curl -LO https://github.com/sqzer-x/sqzass/releases/latest/download/sqzass-v0.1.0-x86_64-unknown-linux-musl.tar.gz
-tar xzf sqzass-*.tar.gz
+curl -LO https://github.com/sqzer-x/sqzass/releases/latest/download/sqzass-x86_64-unknown-linux-musl.tar.gz
+tar xzf sqzass-x86_64-unknown-linux-musl.tar.gz
 sudo install -m755 sqzass-*/sqzass /usr/local/bin/
 ```
 
diff --git a/docs/content/start/installation.md b/docs/content/start/installation.md
@@ -59,8 +59,8 @@ statically linked `x86_64-unknown-linux-musl` build and an
 `aarch64-apple-darwin` one, each with a `.sha256` beside it.
 
 ```bash
-curl -LO https://github.com/sqzer-x/sqzass/releases/latest/download/sqzass-v0.1.0-x86_64-unknown-linux-musl.tar.gz
-tar xzf sqzass-*.tar.gz
+curl -LO https://github.com/sqzer-x/sqzass/releases/latest/download/sqzass-x86_64-unknown-linux-musl.tar.gz
+tar xzf sqzass-x86_64-unknown-linux-musl.tar.gz
 sudo install -m755 sqzass-*/sqzass /usr/local/bin/
 ```