Files
Error-Code-System/.gitea/workflows/ci.yml
T

53 lines
2.5 KiB
YAML

name: ci
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
vet-and-test:
runs-on: nightly
steps:
- name: Checkout
env:
TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -euo pipefail
# 自包含检出(runner 无法访问 github.com 上的 actions/checkout):固定 SHA 浅取回;凭据只经 GIT_CONFIG_* 环境变量以 URL 限定的 extraheader 传给单个 git 进程(不进命令行、不持久化);强制检出并清理遗留文件,等价 actions/checkout 的 clean。
case "$GITHUB_SHA" in *[!0-9a-fA-F]*|"") echo "Checkout requires a fixed commit SHA" >&2; exit 1;; esac
url="${GITHUB_SERVER_URL%/}/${GITHUB_REPOSITORY}.git"
git init -q .
GIT_CONFIG_COUNT=3 \
GIT_CONFIG_KEY_0="http.${url}.extraheader" GIT_CONFIG_VALUE_0="AUTHORIZATION: token ${TOKEN}" \
GIT_CONFIG_KEY_1=credential.helper GIT_CONFIG_VALUE_1= \
GIT_CONFIG_KEY_2=core.hooksPath GIT_CONFIG_VALUE_2=/dev/null \
git fetch -q --depth=1 "$url" "$GITHUB_SHA"
git checkout -q -f --detach FETCH_HEAD
git clean -ffdxq
unset TOKEN
- run: go vet ./... && go test -count=1 ./...
docker-checkout-hostgateway:
runs-on: ubuntu-latest
options: --add-host gitea:host-gateway
env:
GITHUB_SERVER_URL: http://gitea:3000
steps:
- name: Checkout
env:
TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -euo pipefail
# 自包含检出(runner 无法访问 github.com 上的 actions/checkout):固定 SHA 浅取回;凭据只经 GIT_CONFIG_* 环境变量以 URL 限定的 extraheader 传给单个 git 进程(不进命令行、不持久化);强制检出并清理遗留文件,等价 actions/checkout 的 clean。
case "$GITHUB_SHA" in *[!0-9a-fA-F]*|"") echo "Checkout requires a fixed commit SHA" >&2; exit 1;; esac
url="${GITHUB_SERVER_URL%/}/${GITHUB_REPOSITORY}.git"
git init -q .
GIT_CONFIG_COUNT=3 \
GIT_CONFIG_KEY_0="http.${url}.extraheader" GIT_CONFIG_VALUE_0="AUTHORIZATION: token ${TOKEN}" \
GIT_CONFIG_KEY_1=credential.helper GIT_CONFIG_VALUE_1= \
GIT_CONFIG_KEY_2=core.hooksPath GIT_CONFIG_VALUE_2=/dev/null \
git fetch -q --depth=1 "$url" "$GITHUB_SHA"
git checkout -q -f --detach FETCH_HEAD
git clean -ffdxq
unset TOKEN
- run: test -f go.mod && echo "docker-mode checkout via host-gateway OK"