v3.7.8 (Public Release) #72
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release | |
on: | |
release: | |
types: | |
- published | |
jobs: | |
build: | |
name: build bithesis manual | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: xu-cheng/texlive-action@v2 | |
with: | |
scheme: full | |
run: | | |
apk add make msttcorefonts-installer fontconfig | |
update-ms-fonts | |
fc-cache -f | |
make doc | |
- name: Upload bithesis.pdf for later usage. | |
uses: actions/upload-artifact@v4 | |
with: | |
name: bithesis | |
path: bithesis.pdf | |
- name: Upload handbooks for later usage. | |
uses: actions/upload-artifact@v4 | |
with: | |
name: handbooks | |
path: "the-graduates-handbook/*.pdf" | |
- name: Upload *.cls for later usage. | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cls | |
path: "*.cls" | |
publish_templates: | |
name: Publish ${{ matrix.template }} | |
runs-on: ubuntu-latest | |
needs: build | |
strategy: | |
matrix: | |
template: | |
[ | |
graduate-thesis, | |
undergraduate-thesis, | |
lab-report, | |
paper-translation, | |
presentation-slide, | |
undergraduate-thesis-en, | |
reading-report, | |
] | |
include: | |
- template: graduate-thesis | |
cls: bithesis | |
- template: undergraduate-thesis | |
cls: bithesis | |
- template: lab-report | |
cls: bitreport | |
- template: paper-translation | |
cls: bithesis | |
- template: presentation-slide | |
cls: bitbeamer | |
- template: undergraduate-thesis-en | |
cls: bithesis | |
- template: reading-report | |
cls: bithesis | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download bithesis.pdf | |
uses: actions/download-artifact@v4 | |
with: | |
name: bithesis | |
- name: Download `*.cls` | |
uses: actions/download-artifact@v4 | |
with: | |
name: cls | |
- name: Copy manual to the template folder. | |
run: | | |
mv bithesis.pdf ./templates/${{ matrix.template }} | |
mv ${{ matrix.cls }}.cls ./templates/${{ matrix.template }} | |
- name: Install zip | |
uses: montudor/action-zip@v1 | |
- name: Zip files under ./${{ matrix.template }} | |
run: zip -qq -r ./${{ matrix.template }}.zip ./${{ matrix.template }} | |
working-directory: ./templates | |
- name: Upload ${{ matrix.template }}.zip to release | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ./templates/${{ matrix.template }}.zip | |
asset_name: ${{ matrix.template }}.zip | |
tag: ${{ github.ref }} | |
publish_cls: | |
name: Publish ${{ matrix.cls }} | |
runs-on: ubuntu-latest | |
needs: build | |
strategy: | |
matrix: | |
cls: [bithesis, bitreport, bitbeamer] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download *.cls | |
uses: actions/download-artifact@v4 | |
with: | |
name: cls | |
- name: Upload ${{ matrix.cls }}.cls to release | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ${{ matrix.cls }}.cls | |
asset_name: ${{ matrix.cls }}.cls | |
tag: ${{ github.ref }} | |
release_notes: | |
name: Populate release notes with latest changelog and PDFs | |
runs-on: ubuntu-latest | |
# Makesure it's the last job. | |
needs: [build, publish_cls, publish_templates] | |
outputs: | |
release_body: ${{ steps.git-cliff.outputs.content }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Generate a changelog | |
uses: orhun/git-cliff-action@v3 | |
id: git-cliff | |
with: | |
config: cliff.toml | |
args: -vv --latest --strip header | |
env: | |
OUTPUT: CHANGES.md | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/checkout@v4 | |
- name: Download bithesis.pdf | |
uses: actions/download-artifact@v4 | |
with: | |
name: bithesis | |
- name: Upload bithesis.pdf and changelog | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
file: bithesis.pdf | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
tag: ${{ github.ref }} | |
overwrite: true | |
body: | | |
> [!TIP] | |
> 若是初次使用,可先参考**快速使用指南**([本科][undergraduate-handbook]/[硕博][graduate-handbook])或者 [Wiki 网站](https://bithesis.bitnp.net/)。有需要再进一步参考[详细配置手册`bithesis.pdf`][bithesis-pdf]。 | |
[undergraduate-handbook]: ${{ github.server_url }}/${{ github.repository }}/releases/download/${{ github.event.release.tag_name }}/undergraduate-handbook.pdf | |
[graduate-handbook]: ${{ github.server_url }}/${{ github.repository }}/releases/download/${{ github.event.release.tag_name }}/graduate-handbook.pdf | |
[bithesis-pdf]: ${{ github.server_url }}/${{ github.repository }}/releases/download/${{ github.event.release.tag_name }}/bithesis.pdf | |
${{ steps.git-cliff.outputs.content }} | |
- name: Download handbooks | |
uses: actions/download-artifact@v4 | |
with: | |
name: handbooks | |
path: the-graduates-handbook | |
- name: Upload undergraduate-handbook | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: the-graduates-handbook/undergraduate-handbook.pdf | |
tag: ${{ github.ref }} | |
- name: Upload graduate-handbook | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: the-graduates-handbook/graduate-handbook.pdf | |
tag: ${{ github.ref }} | |
upload_to_ctan: | |
name: Upload to CTAN | |
runs-on: ubuntu-latest | |
needs: build | |
if: ${{ ! github.event.release.prerelease }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download bithesis.pdf | |
uses: actions/download-artifact@v4 | |
with: | |
name: bithesis | |
- run: make pkg-only | |
- name: Determine version | |
id: version | |
run: | | |
version=${{ github.event.release.tag_name }} | |
echo "number=$(echo $version | sed 's/^v//')" >> "$GITHUB_OUTPUT" | |
echo "date=$(date '+%Y-%m-%d')" >> "$GITHUB_OUTPUT" | |
- name: Upload to CTAN | |
uses: paolobrasolin/ctan-submit-action@v1 | |
with: | |
action: upload | |
file_path: bithesis.zip | |
fields: | | |
update: "true" | |
pkg: bithesis | |
version: ${{ steps.version.outputs.number }} ${{ steps.version.outputs.date }} | |
author: Feng Kaiyu | |
email: [email protected] | |
uploader: Feng Kaiyu | |
- name: Report | |
run: > | |
echo "🎉 Successfully upload | |
${{ steps.version.outputs.number }} (${{ steps.version.outputs.date }}) | |
to [CTAN](https://www.ctan.org/pkg/bithesis)." >> "$GITHUB_STEP_SUMMARY" | |
changelog: | |
name: Update CHANGELOG | |
runs-on: ubuntu-latest | |
if: ${{ ! github.event.release.prerelease }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.repository.default_branch }} | |
- name: Update CHANGELOG | |
uses: orhun/git-cliff-action@v3 | |
with: | |
config: cliff.toml | |
args: --verbose | |
env: | |
OUTPUT: CHANGELOG.md | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Create a PR | |
# Changes must be made through the merge queue, therefore a PR is necessary. | |
id: pr | |
uses: peter-evans/create-pull-request@v6 | |
with: | |
commit-message: Update CHANGELOG for ${{ github.event.release.tag_name }} | |
title: Update CHANGELOG for ${{ github.event.release.tag_name }} | |
- name: Report status | |
run: | | |
echo "[Pull request #${{ steps.pr.outputs.pull-request-number }}](${{ steps.pr.outputs.pull-request-url }}) is created to update CHANGELOG." >> "$GITHUB_STEP_SUMMARY" | |
- name: Merge the PR | |
run: | | |
gh pr merge ${{ steps.pr.outputs.pull-request-number }} | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |