48 lines
1.5 KiB
YAML
48 lines
1.5 KiB
YAML
name: build-weekly
|
|
|
|
on:
|
|
schedule:
|
|
- cron: '0 8 * * 0' # 每周日 UTC 8:00 (北京时间 16:00)
|
|
workflow_dispatch: # 支持手动触发
|
|
|
|
permissions:
|
|
contents: read
|
|
packages: write
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
GITEA_REGISTRY: gitea-http.gitea.svc.cluster.local:3000
|
|
steps:
|
|
- name: Checkout
|
|
run: |
|
|
git init .
|
|
git remote add origin "${GITHUB_SERVER_URL%/}/${GITHUB_REPOSITORY}.git"
|
|
git -c http.extraheader="Authorization: token ${{ secrets.CHECKOUT_TOKEN }}" \
|
|
fetch --depth=1 origin "${GITHUB_SHA}"
|
|
git checkout --force FETCH_HEAD
|
|
|
|
- name: Set up QEMU (for multi-arch build)
|
|
run: docker run --privileged --rm tonistiigi/binfmt --install all
|
|
|
|
- name: Set up Docker Buildx
|
|
run: |
|
|
docker buildx create --use --driver docker-container --name builder 2>/dev/null || true
|
|
docker buildx inspect --bootstrap
|
|
|
|
- name: Login to internal Gitea Container Registry
|
|
run: |
|
|
echo "${{ secrets.CHECKOUT_TOKEN }}" | \
|
|
docker login "${GITEA_REGISTRY}" -u luochen570 --password-stdin
|
|
|
|
- name: Build and push (multi-arch, via internal registry)
|
|
run: |
|
|
TAG_WEEKLY="weekly-$(date +%Y%m%d)"
|
|
docker buildx build \
|
|
--platform linux/amd64,linux/arm64 \
|
|
--push \
|
|
-t "${GITEA_REGISTRY}/luochen570/luochen570-cli:latest" \
|
|
-t "${GITEA_REGISTRY}/luochen570/luochen570-cli:${TAG_WEEKLY}" \
|
|
.
|