[更新CI/CD流程和包重命名脚本]: 更新了GitHub Actions工作流,增加了包重命名的shell脚本,以自动化发布流程。 #131
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: CMake Build | |
on: | |
push: | |
paths-ignore: | |
- 'doc/**' | |
- 'translations/**' | |
- '.clang-*' | |
- '.gitignore' | |
- '*.pri' | |
- 'LICENSE' | |
- '*.pro' | |
- 'README*' | |
pull_request: | |
paths-ignore: | |
- 'doc/**' | |
- 'translations/**' | |
- '.clang-*' | |
- '.gitignore' | |
- '*.pri' | |
- 'LICENSE' | |
- '*.pro' | |
- 'README*' | |
env: | |
MACOSX_DEPLOYMENT_TARGET: 11.0 | |
PACKET_DIR: ./packaging/packet | |
RELEASES_DIR: ./packaging/releases | |
jobs: | |
build: | |
name: Build | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- windows-latest | |
- macos-latest | |
- ubuntu-latest | |
build_type: | |
- "RelWithDebInfo" | |
generators: | |
- "Ninja" | |
arch: | |
- x86_64 | |
include: | |
- os: macos-latest | |
build_type: "RelWithDebInfo" | |
generators: "Ninja" | |
arch: arm64 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- uses: ./.github/actions/install-dependencies | |
with: | |
os_name: ${{ matrix.os }} | |
- name: Configure and build windows | |
if: startsWith(matrix.os, 'windows') | |
shell: pwsh | |
run: | | |
.\scripts\windows\setVsDev.ps1 | |
cmake ` | |
-S . ` | |
-B ./build ` | |
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} ` | |
-G "${{ matrix.generators }}" | |
cmake --build ./build --config ${{ matrix.build_type }} | |
- name: Configure and build ubuntu | |
if: startsWith(matrix.os, 'ubuntu') | |
shell: bash | |
run: | | |
cmake \ | |
-S . \ | |
-B ./build \ | |
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ | |
-G "${{ matrix.generators }}" | |
cmake --build ./build --config ${{ matrix.build_type }} | |
- name: Configure and build macos | |
if: startsWith(matrix.os, 'macos') | |
shell: bash | |
run: | | |
cmake \ | |
-S . \ | |
-B ./build \ | |
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ | |
-DCMAKE_OSX_ARCHITECTURES="${{ matrix.arch }}" \ | |
-G "${{ matrix.generators }}" | |
cmake --build ./build --config ${{ matrix.build_type }} | |
- name: Move compiled files to packaging/packet | |
shell: bash | |
run: | | |
mkdir -p ${{ env.PACKET_DIR }} | |
mkdir -p ${{ env.RELEASES_DIR }} | |
mv -v ./bin-64/${{ matrix.build_type }}/* ${{ env.PACKET_DIR }}/ | |
ls -al ${{ env.PACKET_DIR }} | |
- name: Download fonts | |
shell: bash | |
working-directory: ${{ env.PACKET_DIR }} | |
run: | | |
cmake -P ./../fonts.cmake | |
ls -al | |
ls -al ./fonts | |
- name: Packaging windows | |
if: startsWith(runner.os, 'Windows') | |
shell: pwsh | |
run: | | |
.\packaging\windows\package.ps1 | |
- name: Packaging macos | |
if: startsWith(runner.os, 'macOS') | |
shell: bash | |
run: | | |
sudo chmod +x ./packaging/macos/package.sh | |
./packaging/macos/package.sh | |
- name: Packaging ubuntu | |
if: startsWith(runner.os, 'Linux') | |
shell: bash | |
run: | | |
sudo chmod 755 ./packaging/ubuntu/package.sh | |
./packaging/ubuntu/package.sh | |
- name: Check packages | |
shell: bash | |
run: | | |
ls -al ${{ env.PACKET_DIR }} | |
ls -al ${{ env.RELEASES_DIR }} | |
- name: Upload packages | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.os }}-${{matrix.arch}}-${{ matrix.build_type }} | |
path: ${{ env.RELEASES_DIR }} | |
release: | |
name: Release | |
needs: build | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- name: Mkdir releases | |
shell: bash | |
run: | | |
mkdir -p ${{ env.RELEASES_DIR }} | |
- name: Download packages | |
uses: actions/download-artifact@v4 | |
with: | |
path: ${{ env.RELEASES_DIR }} | |
- name: Move packages | |
working-directory: packaging | |
shell: bash | |
run: | | |
sudo chmod +x rename_packages.sh | |
./rename_packages.sh | |
- name: Create release | |
uses: softprops/action-gh-release@v2 | |
with: | |
draft: false | |
prerelease: false | |
generate_release_notes: true | |
files: | | |
${{ env.RELEASES_DIR }}/* |