更新工作流适配新runner[ci][0.2.5]
All checks were successful
CI / docker-ci (push) Successful in 19s

This commit is contained in:
2025-12-26 00:00:35 -05:00
parent df18bdfa7e
commit 45005fcc92

View File

@@ -1,5 +1,13 @@
name: CI name: CI
# Required Secrets:
# - DJANGO_SECRET_KEY: Django Secret Key
# - token: Gitea API token for creating releases
# - ALIST_PUBLIC_URL: Public URL for AList download (e.g., http://alist.example.com/d/ci)
# - WEBDAV_URL: WebDAV upload URL (e.g., http://alist.example.com/dav/ci/)
# - WEBDAV_USER: WebDAV username
# - WEBDAV_PASSWORD: WebDAV password
on: on:
push: push:
branches: branches:
@@ -18,6 +26,8 @@ jobs:
docker-ci: docker-ci:
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && contains(github.event.head_commit.message, '[ci]')) if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && contains(github.event.head_commit.message, '[ci]'))
runs-on: ubuntu-latest runs-on: ubuntu-latest
container:
image: catthehacker/ubuntu:act-latest
timeout-minutes: 40 timeout-minutes: 40
env: env:
DJANGO_SECRET_KEY: ${{ secrets.DJANGO_SECRET_KEY }} DJANGO_SECRET_KEY: ${{ secrets.DJANGO_SECRET_KEY }}
@@ -25,8 +35,8 @@ jobs:
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
ARTIFACT_DIR: artifacts ARTIFACT_DIR: artifacts
SERVER_DEST_DIR: /srv/ci # 请在 Secrets 中配置 ALIST_PUBLIC_URL例如 http://139.224.69.213:8080/d/ci
DOWNLOAD_BASE: http://139.224.69.213:8080 DOWNLOAD_BASE: ${{ secrets.ALIST_PUBLIC_URL }}
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 }}
@@ -80,12 +90,31 @@ jobs:
mkdir -p "$GITHUB_WORKSPACE/$ARTIFACT_DIR" mkdir -p "$GITHUB_WORKSPACE/$ARTIFACT_DIR"
mv "$GITHUB_WORKSPACE/$ART" "$GITHUB_WORKSPACE/$ARTIFACT_DIR/" mv "$GITHUB_WORKSPACE/$ART" "$GITHUB_WORKSPACE/$ARTIFACT_DIR/"
echo "artifact: $GITHUB_WORKSPACE/$ARTIFACT_DIR/$ART" echo "artifact: $GITHUB_WORKSPACE/$ARTIFACT_DIR/$ART"
- name: Publish to /srv/ci - name: Publish to WebDAV
env:
WEBDAV_URL: ${{ secrets.WEBDAV_URL }}
WEBDAV_USER: ${{ secrets.WEBDAV_USER }}
WEBDAV_PASSWORD: ${{ secrets.WEBDAV_PASSWORD }}
run: | run: |
set -e set -e
ART=$(cat "$GITHUB_WORKSPACE/.artifact_name") ART=$(cat "$GITHUB_WORKSPACE/.artifact_name")
cat "$GITHUB_WORKSPACE/$ARTIFACT_DIR/$ART" | docker run --rm -i -v "$SERVER_DEST_DIR:/srvci" "$IMAGE_NAME:$VERSION" sh -c "cat > /srvci/$ART && ls -l /srvci" FILE_PATH="$GITHUB_WORKSPACE/$ARTIFACT_DIR/$ART"
echo "published: $SERVER_DEST_DIR/$ART"
# 检查必要的 secrets 是否存在
if [ -z "$WEBDAV_URL" ]; then
echo "Error: WEBDAV_URL secret is not set."
exit 1
fi
# 确保 URL 以 / 结尾
case "$WEBDAV_URL" in
*/) ;;
*) WEBDAV_URL="${WEBDAV_URL}/" ;;
esac
echo "Uploading $ART to $WEBDAV_URL..."
curl -f -u "$WEBDAV_USER:$WEBDAV_PASSWORD" -T "$FILE_PATH" "${WEBDAV_URL}${ART}"
echo "Upload success."
- name: Create release with download link - name: Create release with download link
if: env.RELEASE_TOKEN != '' if: env.RELEASE_TOKEN != ''
run: | run: |
@@ -94,7 +123,6 @@ jobs:
TAG="$VERSION" TAG="$VERSION"
NAME="$VERSION" NAME="$VERSION"
BASE="${DOWNLOAD_BASE%/}" BASE="${DOWNLOAD_BASE%/}"
BASE="${BASE%/ci}"
DL="$BASE/$ART" DL="$BASE/$ART"
echo "download: $DL" echo "download: $DL"
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")