feat(release): 完善版本服务与镜像发布

This commit is contained in:
ysicing committed 2026-09-21 13:06:22 +08:00
1 parent 593112e733
commit ea67453b32
33 files changed
+1546 -180

No files matched your search

+64
View File
@@ -0,0 +1,64 @@
# Copyright (C) 2026 ysicing
# SPDX-License-Identifier: AGPL-3.0-or-later
name: Server image
on:
push:
branches:
- '**'
paths:
- server/**
- .github/workflows/server-image.yml
permissions:
contents: read
packages: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Generate image name and tag
id: image
shell: bash
run: |
set -euo pipefail
raw_branch="$GITHUB_REF_NAME"
branch="$(printf '%s' "$raw_branch" \
| tr '[:upper:]' '[:lower:]' \
| sed -E 's/[^a-z0-9_.-]+/-/g; s/-+/-/g; s/^[.-]+//; s/[.-]+$//' \
| cut -c1-80)"
if [ -z "$branch" ]; then branch=detached; fi
image="ghcr.io/${GITHUB_REPOSITORY_OWNER,,}/xstats-server"
tag="${branch}-${GITHUB_SHA}"
echo "image=$image" >> "$GITHUB_OUTPUT"
echo "tag=$tag" >> "$GITHUB_OUTPUT"
echo "### Container image" >> "$GITHUB_STEP_SUMMARY"
echo "\`$image:$tag\`" >> "$GITHUB_STEP_SUMMARY"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and publish
uses: docker/build-push-action@v6
with:
context: .
file: server/api/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.image.outputs.image }}:${{ steps.image.outputs.tag }}
labels: |
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}
cache-from: type=gha,scope=xstats-server
cache-to: type=gha,mode=max,scope=xstats-server