CI 스크립트에 실행 비트를 주고 bash 로 부른다
Some checks failed
ci / build (push) Failing after 9s

첫 CI 가 checkout 직후 멈췄다.

  exit status 126
  ./build/ci/verify-node.sh: 허가 거부

Node 문제가 아니었다. Windows 에서 만든 파일이라 git 에 mode 100644 로
들어갔고, 리눅스 러너에서 실행 비트가 없어 126 으로 죽었다.

  git update-index --chmod=+x 로 세 스크립트에 실행 비트를 줬다
  워크플로도 `./script` 대신 `bash script` 로 부르게 했다 —
  실행 비트가 다시 빠져도 안 죽는 이중 안전장치다

이번 판단 착오도 기록해둔다. 러너 Node 가 18 인 것을 먼저 보고
그게 원인일 거라 짚었는데, 실제 로그는 그 앞 단계에서 끊겨 있었다.
추정하지 말고 로그를 봤어야 했다.
This commit is contained in:
Yun Chan 2026-08-20 17:10:04 +09:00
parent 8ed45008a0
commit 98d3aaf236
6 changed files with 15 additions and 4 deletions

View file

@ -34,6 +34,17 @@ FORGEJO_REPO=designpaca
# ── 사람이 발급해야 하는 것 ────────────────────────────────── # ── 사람이 발급해야 하는 것 ──────────────────────────────────
# 아래는 전부 비워둔다. 값을 아는 사람만 채울 수 있다. # 아래는 전부 비워둔다. 값을 아는 사람만 채울 수 있다.
# ── Forgejo 로그인 (토큰을 모를 때 한 번만) ──────────────────
# 토큰이 없으면 계정으로 API 를 부를 수 있다(Basic Auth).
# 이 값으로 저장소를 만들고, 이어서 API 토큰을 발급받아 FORGEJO_TOKEN 에 채운다.
# 토큰이 생기면 아래 둘은 지워도 된다.
#
# 주의: 2단계 인증이 켜져 있으면 Basic Auth 가 막힌다.
# 그때는 웹에서 토큰만 발급해 FORGEJO_TOKEN 에 넣어라.
# git.chanpaca.net → 설정 → 애플리케이션 → 토큰 생성
FORGEJO_USER=
FORGEJO_PASSWORD=
# Forgejo API 토큰. 저장소 생성·시크릿 등록에 쓴다. # Forgejo API 토큰. 저장소 생성·시크릿 등록에 쓴다.
# git.chanpaca.net → 설정 → 애플리케이션 → 토큰 생성 # git.chanpaca.net → 설정 → 애플리케이션 → 토큰 생성
# 권한: repository(write), user(read) # 권한: repository(write), user(read)

View file

@ -25,7 +25,7 @@ jobs:
git clean -qfdx git clean -qfdx
- name: 환경 확인 - name: 환경 확인
run: ./build/ci/verify-node.sh run: bash build/ci/verify-node.sh
- name: 의존성 설치 - name: 의존성 설치
run: pnpm install --frozen-lockfile run: pnpm install --frozen-lockfile

View file

@ -29,7 +29,7 @@ jobs:
git clean -qfdx git clean -qfdx
- name: 환경 확인 - name: 환경 확인
run: ./build/ci/verify-node.sh run: bash build/ci/verify-node.sh
- name: 릴리스 정보 확정 - name: 릴리스 정보 확정
run: | run: |
@ -75,11 +75,11 @@ jobs:
NPM_TOKEN: "${{ secrets.NPM_TOKEN }}" NPM_TOKEN: "${{ secrets.NPM_TOKEN }}"
FORGEJO_NPM_TOKEN: "${{ secrets.FORGEJO_NPM_TOKEN }}" FORGEJO_NPM_TOKEN: "${{ secrets.FORGEJO_NPM_TOKEN }}"
FORGEJO_NPM_OWNER: "${{ vars.FORGEJO_NPM_OWNER }}" FORGEJO_NPM_OWNER: "${{ vars.FORGEJO_NPM_OWNER }}"
run: ./build/ci/publish-npm.sh packages/cli run: bash build/ci/publish-npm.sh packages/cli
- name: 릴리스 업로드 (draft) - name: 릴리스 업로드 (draft)
env: { RELEASE_TOKEN: "${{ secrets.RELEASE_TOKEN }}" } env: { RELEASE_TOKEN: "${{ secrets.RELEASE_TOKEN }}" }
run: ./build/ci/upload-release-asset.sh "$RELTAG" "$TARBALL" run: bash build/ci/upload-release-asset.sh "$RELTAG" "$TARBALL"
- name: 소개 페이지 배포 (Cloudflare Pages) - name: 소개 페이지 배포 (Cloudflare Pages)
env: env:

0
build/ci/publish-npm.sh Normal file → Executable file
View file

0
build/ci/upload-release-asset.sh Normal file → Executable file
View file

0
build/ci/verify-node.sh Normal file → Executable file
View file