使用act_runner的服务器以提供下载[ci][0.2.3]
All checks were successful
CI / docker-ci (push) Successful in 31s

This commit is contained in:
2025-11-27 11:08:34 +08:00
parent 3f108e2138
commit e032253327

View File

@@ -24,10 +24,9 @@ jobs:
DJANGO_DEBUG: "False" DJANGO_DEBUG: "False"
DJANGO_ALLOWED_HOSTS: "127.0.0.1,localhost" DJANGO_ALLOWED_HOSTS: "127.0.0.1,localhost"
IMAGE_NAME: achievement_inputing_ci IMAGE_NAME: achievement_inputing_ci
ALIST_URL: https://alist.spdis.top ARTIFACT_DIR: artifacts
ALIST_PATH: /lanzouyunyouxiang/ci SERVER_DEST_DIR: /srv/ci
ALIST_USER: ${{ secrets.ALIST_USER }} DOWNLOAD_BASE: http://139.224.69.213:8080
ALIST_PASSWORD: ${{ secrets.ALIST_PASSWORD }}
GITEA_SERVER: ${{ github.server_url }} GITEA_SERVER: ${{ github.server_url }}
GITEA_REPO: ${{ github.repository }} GITEA_REPO: ${{ github.repository }}
RELEASE_TOKEN: ${{ secrets.token }} RELEASE_TOKEN: ${{ secrets.token }}
@@ -75,35 +74,18 @@ jobs:
ART="achievement_inputing_ci_${VERSION}.tar" ART="achievement_inputing_ci_${VERSION}.tar"
docker save -o "$GITHUB_WORKSPACE/$ART" "$IMAGE_NAME:$VERSION" docker save -o "$GITHUB_WORKSPACE/$ART" "$IMAGE_NAME:$VERSION"
echo "$ART" > "$GITHUB_WORKSPACE/.artifact_name" echo "$ART" > "$GITHUB_WORKSPACE/.artifact_name"
- name: Upload to Alist - name: Publish artifact locally
run: | run: |
set -e
ART=$(cat "$GITHUB_WORKSPACE/.artifact_name") ART=$(cat "$GITHUB_WORKSPACE/.artifact_name")
BASE="${ALIST_URL%/}" mkdir -p "$GITHUB_WORKSPACE/$ARTIFACT_DIR"
curl -sS -o "$GITHUB_WORKSPACE/login.json" -w "%{http_code}" -X POST "$BASE/api/auth/login" -H "Content-Type: application/json" -d "{\"username\":\"$ALIST_USER\",\"password\":\"$ALIST_PASSWORD\"}" > "$GITHUB_WORKSPACE/login.code" mv "$GITHUB_WORKSPACE/$ART" "$GITHUB_WORKSPACE/$ARTIFACT_DIR/"
if [ "$(cat "$GITHUB_WORKSPACE/login.code")" != "200" ]; then echo "artifact: $GITHUB_WORKSPACE/$ARTIFACT_DIR/$ART"
echo login_failed - name: Publish to /srv/ci
cat "$GITHUB_WORKSPACE/login.json" run: |
exit 1 ART=$(cat "$GITHUB_WORKSPACE/.artifact_name")
fi sudo mkdir -p "$SERVER_DEST_DIR"
TOKEN=$(sed -n 's/.*"token":"\([^"]*\)".*/\1/p' "$GITHUB_WORKSPACE/login.json") sudo cp "$GITHUB_WORKSPACE/$ARTIFACT_DIR/$ART" "$SERVER_DEST_DIR/"
if [ -z "$TOKEN" ]; then echo "published: $SERVER_DEST_DIR/$ART"
TOKEN=$(sed -n 's/.*"auth":"\([^"]*\)".*/\1/p' "$GITHUB_WORKSPACE/login.json")
fi
if [ -z "$TOKEN" ]; then
echo token_not_found
cat "$GITHUB_WORKSPACE/login.json"
exit 1
fi
curl -sS -X POST "$BASE/api/fs/mkdir" -H "Authorization: $TOKEN" -H "Content-Type: application/json" -d "{\"path\":\"$ALIST_PATH\"}" >/dev/null 2>&1 || true
UPLOAD_STATUS=$(curl -sS -w "%{http_code}" -o /dev/null -X PUT "$BASE/api/fs/form" -H "Authorization: $TOKEN" -F "path=$ALIST_PATH" -F "file=@$GITHUB_WORKSPACE/$ART;type=application/x-tar")
if [ "$UPLOAD_STATUS" -ge 400 ]; then
UPLOAD_STATUS=$(curl -sS -w "%{http_code}" -o /dev/null -X PUT "$BASE/api/fs/form" -H "Authorization: Bearer $TOKEN" -F "path=$ALIST_PATH" -F "file=@$GITHUB_WORKSPACE/$ART;type=application/x-tar")
fi
if [ "$UPLOAD_STATUS" -ge 400 ]; then
echo upload_failed
exit 1
fi
- name: Create release with download link - name: Create release with download link
if: env.RELEASE_TOKEN != '' if: env.RELEASE_TOKEN != ''
run: | run: |
@@ -111,6 +93,6 @@ jobs:
BRANCH=${GITHUB_REF#refs/heads/} BRANCH=${GITHUB_REF#refs/heads/}
TAG="$VERSION" TAG="$VERSION"
NAME="$VERSION" NAME="$VERSION"
DL="${ALIST_URL%/}${ALIST_PATH}/$ART" DL="${DOWNLOAD_BASE%/}/$ART"
JSON=$(printf '{"tag_name":"%s","target_commitish":"%s","name":"%s","body":"%s"}' "$TAG" "$BRANCH" "$NAME" "$DL") JSON=$(printf '{"tag_name":"%s","target_commitish":"%s","name":"%s","body":"%s"}' "$TAG" "$BRANCH" "$NAME" "$DL")
curl -sS -X POST "$GITEA_SERVER/api/v1/repos/$GITEA_REPO/releases" -H "Content-Type: application/json" -H "Authorization: token $RELEASE_TOKEN" -d "$JSON" curl -sS -X POST "$GITEA_SERVER/api/v1/repos/$GITEA_REPO/releases" -H "Content-Type: application/json" -H "Authorization: token $RELEASE_TOKEN" -d "$JSON"