107 lines
3.2 KiB
YAML
107 lines
3.2 KiB
YAML
name: Release
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
tags: ['v*']
|
|
|
|
jobs:
|
|
validate:
|
|
name: Validate Templates
|
|
runs-on: linux-amd64-docker-small
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version: '1.25.x'
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Test workflow scripts
|
|
run: python -B -m unittest discover -s .github/scripts -p 'test_*.py'
|
|
|
|
- name: Verify pinned official snapshot
|
|
working-directory: tools
|
|
run: |
|
|
go run . upstream prepare
|
|
go run . upstream verify
|
|
|
|
- name: Test — framework alignment and multilingual notification parity
|
|
working-directory: tools
|
|
run: go test ./...
|
|
|
|
- name: Build and render all themes and official languages
|
|
working-directory: tools
|
|
run: go run . preview all
|
|
|
|
package:
|
|
name: Package & Release
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
needs: validate
|
|
runs-on: linux-amd64-docker-small
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
token: ${{ secrets.GITEA_TOKEN }}
|
|
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version: '1.25.x'
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Verify release tag matches the official snapshot
|
|
run: |
|
|
python -c 'import json, os; lock=json.load(open("gitea.lock.json")); assert lock["tag"] == os.environ["GITHUB_REF_NAME"], "Release tag must match the pinned Gitea tag"'
|
|
|
|
- name: Verify release notes
|
|
run: test -s ".github/release-notes/${GITHUB_REF_NAME}.md"
|
|
|
|
- name: Generate static preview for the archive
|
|
working-directory: tools
|
|
run: go run . preview all
|
|
|
|
- name: Package generated installable themes and multilingual preview
|
|
run: python -B .github/scripts/package_release.py --version "$TEMPLATE_RELEASE"
|
|
env:
|
|
TEMPLATE_RELEASE: ${{ github.ref_name }}
|
|
|
|
- name: Create Release
|
|
run: python -B .github/scripts/gitea_actions.py publish-release --version "$TEMPLATE_RELEASE"
|
|
env:
|
|
TEMPLATE_RELEASE: ${{ github.ref_name }}
|
|
GITEA_SERVER_URL: ${{ github.server_url }}
|
|
GITEA_REPOSITORY: ${{ github.repository }}
|
|
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
|
|
|
notify-release-docs:
|
|
name: Remind to Update Release Documentation
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
needs: package
|
|
concurrency:
|
|
group: release-documentation-${{ github.ref }}
|
|
cancel-in-progress: false
|
|
runs-on: linux-amd64-docker-small
|
|
permissions:
|
|
contents: read
|
|
issues: write
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Create documentation reminder Issue
|
|
run: python -B .github/scripts/gitea_actions.py create-issue --version "$TEMPLATE_RELEASE"
|
|
env:
|
|
TEMPLATE_RELEASE: ${{ github.ref_name }}
|
|
GITEA_SERVER_URL: ${{ github.server_url }}
|
|
GITEA_REPOSITORY: ${{ github.repository }}
|
|
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|