This commit is contained in:
@@ -24,10 +24,9 @@ jobs:
|
||||
DJANGO_DEBUG: "False"
|
||||
DJANGO_ALLOWED_HOSTS: "127.0.0.1,localhost"
|
||||
IMAGE_NAME: achievement_inputing_ci
|
||||
ALIST_URL: https://alist.spdis.top
|
||||
ALIST_PATH: /lanzouyunyouxiang/ci
|
||||
ALIST_USER: ${{ secrets.ALIST_USER }}
|
||||
ALIST_PASSWORD: ${{ secrets.ALIST_PASSWORD }}
|
||||
ARTIFACT_DIR: artifacts
|
||||
SERVER_DEST_DIR: /srv/ci
|
||||
DOWNLOAD_BASE: http://139.224.69.213:8080
|
||||
GITEA_SERVER: ${{ github.server_url }}
|
||||
GITEA_REPO: ${{ github.repository }}
|
||||
RELEASE_TOKEN: ${{ secrets.token }}
|
||||
@@ -75,35 +74,18 @@ jobs:
|
||||
ART="achievement_inputing_ci_${VERSION}.tar"
|
||||
docker save -o "$GITHUB_WORKSPACE/$ART" "$IMAGE_NAME:$VERSION"
|
||||
echo "$ART" > "$GITHUB_WORKSPACE/.artifact_name"
|
||||
- name: Upload to Alist
|
||||
- name: Publish artifact locally
|
||||
run: |
|
||||
set -e
|
||||
ART=$(cat "$GITHUB_WORKSPACE/.artifact_name")
|
||||
BASE="${ALIST_URL%/}"
|
||||
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"
|
||||
if [ "$(cat "$GITHUB_WORKSPACE/login.code")" != "200" ]; then
|
||||
echo login_failed
|
||||
cat "$GITHUB_WORKSPACE/login.json"
|
||||
exit 1
|
||||
fi
|
||||
TOKEN=$(sed -n 's/.*"token":"\([^"]*\)".*/\1/p' "$GITHUB_WORKSPACE/login.json")
|
||||
if [ -z "$TOKEN" ]; then
|
||||
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
|
||||
mkdir -p "$GITHUB_WORKSPACE/$ARTIFACT_DIR"
|
||||
mv "$GITHUB_WORKSPACE/$ART" "$GITHUB_WORKSPACE/$ARTIFACT_DIR/"
|
||||
echo "artifact: $GITHUB_WORKSPACE/$ARTIFACT_DIR/$ART"
|
||||
- name: Publish to /srv/ci
|
||||
run: |
|
||||
ART=$(cat "$GITHUB_WORKSPACE/.artifact_name")
|
||||
sudo mkdir -p "$SERVER_DEST_DIR"
|
||||
sudo cp "$GITHUB_WORKSPACE/$ARTIFACT_DIR/$ART" "$SERVER_DEST_DIR/"
|
||||
echo "published: $SERVER_DEST_DIR/$ART"
|
||||
- name: Create release with download link
|
||||
if: env.RELEASE_TOKEN != ''
|
||||
run: |
|
||||
@@ -111,6 +93,6 @@ jobs:
|
||||
BRANCH=${GITHUB_REF#refs/heads/}
|
||||
TAG="$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")
|
||||
curl -sS -X POST "$GITEA_SERVER/api/v1/repos/$GITEA_REPO/releases" -H "Content-Type: application/json" -H "Authorization: token $RELEASE_TOKEN" -d "$JSON"
|
||||
|
||||
Reference in New Issue
Block a user