feat: cross-compile & upgrade LLVM to 21.1.8 #636
This file contains hidden or 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: main | |
| on: | |
| push: | |
| branches: [main] | |
| tags: ["v*"] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| changes: | |
| if: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pull-requests: read | |
| outputs: | |
| format: ${{ steps.filter.outputs.format }} | |
| docs: ${{ steps.filter.outputs.docs }} | |
| clice: ${{ steps.filter.outputs.clice }} | |
| vscode: ${{ steps.filter.outputs.vscode }} | |
| cmake: ${{ steps.filter.outputs.cmake }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dorny/paths-filter@v3 | |
| id: filter | |
| with: | |
| filters: | | |
| format: | |
| - '**/*.{h,c,cpp,hpp,ts,js,lua,md,yml,yaml}' | |
| docs: | |
| - 'docs/**' | |
| - '.github/workflows/deploy-docs.yml' | |
| clice: | |
| - 'src/**' | |
| - 'include/**' | |
| - 'CMakeLists.txt' | |
| - '.github/workflows/publish-clice.yml' | |
| vscode: | |
| - 'editors/vscode/**' | |
| - '.github/workflows/publish-vscode.yml' | |
| cmake: | |
| - 'CMakeLists.txt' | |
| - 'src/**' | |
| - 'include/**' | |
| - 'tests/**' | |
| - 'config/**' | |
| - '.github/workflows/test-cmake.yml' | |
| conventional-commit: | |
| if: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check conventional commit format | |
| env: | |
| IS_PR: ${{ github.event_name == 'pull_request' }} | |
| PR_TITLE: ${{ github.event.pull_request.title }} | |
| COMMIT_MSG: ${{ github.event.head_commit.message }} | |
| run: | | |
| pattern='^(feat|fix|refactor|chore|build|ci|docs|test|perf|style|revert)(\(.+\))?: .+' | |
| if [[ "$IS_PR" == "true" ]]; then | |
| subject="$PR_TITLE" | |
| label="PR title" | |
| else | |
| subject=$(echo "$COMMIT_MSG" | head -n1) | |
| label="Commit message" | |
| fi | |
| if [[ ! "$subject" =~ $pattern ]]; then | |
| echo "::error::$label must follow conventional commit format: type(scope)?: description" | |
| echo " Valid types: feat, fix, refactor, chore, build, ci, docs, test, perf, style, revert" | |
| echo " Got: '$subject'" | |
| exit 1 | |
| fi | |
| format: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.format == 'true' }} | |
| uses: ./.github/workflows/check-format.yml | |
| deploy: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.docs == 'true' }} | |
| permissions: | |
| contents: write | |
| uses: ./.github/workflows/deploy-docs.yml | |
| secrets: inherit | |
| # clice: | |
| # needs: changes | |
| # if: ${{ needs.changes.outputs.clice == 'true' }} | |
| # uses: ./.github/workflows/publish-clice.yml | |
| vscode: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.vscode == 'true' }} | |
| uses: ./.github/workflows/publish-vscode.yml | |
| cmake: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.cmake == 'true' }} | |
| uses: ./.github/workflows/test-cmake.yml | |
| release-clice: | |
| permissions: | |
| contents: write | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| uses: ./.github/workflows/publish-clice.yml | |
| secrets: inherit | |
| release-vscode: | |
| permissions: | |
| contents: write | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| uses: ./.github/workflows/publish-vscode.yml | |
| secrets: inherit | |
| checks-passed: | |
| if: ${{ always() && !startsWith(github.ref, 'refs/tags/') }} | |
| needs: | |
| - conventional-commit | |
| - format | |
| - deploy | |
| # - clice | |
| - vscode | |
| - cmake | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check results | |
| uses: re-actors/alls-green@release/v1 | |
| with: | |
| allowed-skips: conventional-commit,format,deploy,clice,vscode,cmake | |
| jobs: ${{ toJSON(needs) }} |