name: Release
-# Skip this workflow on push to master if the commit message contains [no release]
-if: |
- github.event_name != 'push' ||
- github.ref != 'refs/heads/master' ||
- !contains(github.event.head_commit.message, '[no release]')
-
on:
workflow_dispatch: # allows manual triggering
inputs:
jobs:
+ check_release:
+ runs-on: [self-hosted, fast]
+
+ outputs:
+ should_release: ${{ steps.check.outputs.should_release }}
+
+ steps:
+ - id: check
+ run: |
+ if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
+ echo "should_release=true" >> $GITHUB_OUTPUT
+ elif [[ "${{ github.event_name }}" == "push" && "${{ github.ref }}" == "refs/heads/master" ]]; then
+ if echo "${{ github.event.head_commit.message }}" | grep -q '\[no release\]'; then
+ echo "should_release=false" >> $GITHUB_OUTPUT
+ else
+ echo "should_release=true" >> $GITHUB_OUTPUT
+ fi
+ else
+ echo "should_release=false" >> $GITHUB_OUTPUT
+ fi
+
macos-cpu:
+ needs: [check_release]
+ if: ${{ needs.check_release.outputs.should_release == 'true' }}
strategy:
matrix:
include:
name: llama-bin-macos-${{ matrix.build }}.tar.gz
ubuntu-cpu:
+ needs: [check_release]
+ if: ${{ needs.check_release.outputs.should_release == 'true' }}
strategy:
matrix:
include:
name: llama-bin-ubuntu-${{ matrix.build }}.tar.gz
ubuntu-vulkan:
+ needs: [check_release]
+ if: ${{ needs.check_release.outputs.should_release == 'true' }}
strategy:
matrix:
name: llama-bin-ubuntu-vulkan-${{ matrix.build }}.tar.gz
android-arm64:
+ needs: [check_release]
+ if: ${{ needs.check_release.outputs.should_release == 'true' }}
runs-on: ubuntu-latest
name: llama-bin-android-arm64.tar.gz
ubuntu-24-openvino:
+ needs: [check_release]
+ if: ${{ needs.check_release.outputs.should_release == 'true' }}
runs-on: ubuntu-24.04
name: llama-bin-ubuntu-openvino-${{ env.OPENVINO_VERSION_MAJOR }}-x64.tar.gz
windows-cpu:
+ needs: [check_release]
+ if: ${{ needs.check_release.outputs.should_release == 'true' }}
runs-on: windows-2025
name: llama-bin-win-cpu-${{ matrix.arch }}.zip
windows:
+ needs: [check_release]
+ if: ${{ needs.check_release.outputs.should_release == 'true' }}
runs-on: windows-2025
name: llama-bin-win-${{ matrix.backend }}-${{ matrix.arch }}.zip
windows-cuda:
+ needs: [check_release]
+ if: ${{ needs.check_release.outputs.should_release == 'true' }}
runs-on: windows-2022
# name: llama-bin-ubuntu-sycl-${{ matrix.build }}-x64.tar.gz
ubuntu-22-rocm:
+ needs: [check_release]
+ if: ${{ needs.check_release.outputs.should_release == 'true' }}
runs-on: ubuntu-22.04
name: llama-bin-ubuntu-rocm-${{ env.ROCM_VERSION_SHORT }}-${{ matrix.build }}.tar.gz
windows-hip:
+ needs: [check_release]
+ if: ${{ needs.check_release.outputs.should_release == 'true' }}
runs-on: windows-2022
name: llama-bin-win-hip-${{ matrix.name }}-x64.zip
ios-xcode-build:
+ needs: [check_release]
+ if: ${{ needs.check_release.outputs.should_release == 'true' }}
runs-on: macos-15
steps:
# name: llama-bin-${{ matrix.chip_type }}-openEuler-${{ matrix.arch }}${{ matrix.use_acl_graph == 'on' && '-aclgraph' || '' }}.tar.gz
ui-build:
+ needs: [check_release]
+ if: ${{ needs.check_release.outputs.should_release == 'true' }}
uses: ./.github/workflows/ui-build.yml
release: