改进CI配置 #40
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: Build CI | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
workflow_dispatch: | |
inputs: | |
make_build_arg1: | |
required: false | |
type: string | |
default: releaseBuild=0 | |
env: | |
CI_HOST_INFO: GitHub Build Workflow | |
defaults: | |
run: | |
working-directory: ./source/ | |
jobs: | |
Unit-Testing: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build unit test | |
run: make test | |
- name: Unit testing | |
run: ./test.out | |
Build-for-Linux: | |
runs-on: ubuntu-latest | |
needs: [Unit-Testing] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build with make in Linux(Ubuntu) | |
run: make i18nglish.out build_host_description="${{ env.CI_HOST_INFO }} ID:${{ github.run_id }} for ${{ github.ref }}" "${{ inputs.make_build_arg1 }}" | |
- name: Upload executable file | |
uses: actions/upload-artifact@v4 | |
with: | |
name: i18nglish-Linux(.out) | |
path: source/i18nglish.out | |
if-no-files-found: error | |
retention-days: 7 | |
End-to-End-Testing: | |
runs-on: ubuntu-latest | |
needs: [Unit-Testing, Build-for-Linux] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download artifact(Linux) | |
uses: actions/download-artifact@v4 | |
with: | |
name: i18nglish-Linux(.out) | |
- name: End to End test(script) | |
run: ./full_test.sh | |
# https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md | |
# https://www.msys2.org/docs/ci/ | |
Build-for-Windows: | |
runs-on: windows-latest | |
needs: [Unit-Testing, End-to-End-Testing, Build-for-Linux] | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: msys2/setup-msys2@v2 | |
with: | |
msystem: UCRT64 | |
update: true | |
install: make git mingw-w64-ucrt-x86_64-clang | |
- name: Build with make in Windows(MSYS2) | |
run: make i18nglish.exe build_host_description="${{ env.CI_HOST_INFO }} ID:${{ github.run_id }} for ${{ github.ref }}" "${{ inputs.make_build_arg1 }}" | |
- name: Upload executable file(.exe) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: i18nglish-Windows(.exe) | |
path: source/i18nglish.exe | |
if-no-files-found: error | |
retention-days: 7 |