name: Build wheels and upload to GitHub Releases on: push: tags: - "v*" jobs: create_releases: name: Create Releases runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: ref: ${{ github.event.repository.default_branch }} fetch-depth: 0 - name: Create Release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | gh release create "${{ github.ref_name }}" \ --title "${{ github.ref_name }}" \ --notes "TBD" # ######################################################### # Linux # ######################################################### build_wheels_linux: name: Build Linux needs: create_releases strategy: fail-fast: false matrix: flash-attn-version: ["2.8.3"] python-version: ["3.11", "3.12", "3.13"] torch-version: ["2.9.0.dev"] # https://developer.nvidia.com/cuda-toolkit-archive cuda-version: ["12.6.3", "12.8.1", "12.9.1"] exclude: # torch < 2.2 does not support Python 3.12 - python-version: "3.12" torch-version: "2.0.1" - python-version: "3.12" torch-version: "2.1.2" # torch 2.0.1 does not support CUDA 12.x - torch-version: "2.0.1" cuda-version: "12.1.1" - torch-version: "2.0.1" cuda-version: "12.4.1" - torch-version: "2.0.1" cuda-version: "12.6.3" - torch-version: "2.0.1" cuda-version: "12.8.1" # torch 2.6.0 does not support CUDA 12.1 - torch-version: "2.6.0" cuda-version: "12.1.1" # torch 2.7.0 does not support CUDA 12.4 - torch-version: "2.7.0" cuda-version: "12.4.1" # torch < 2.8 does not support CUDA 12.9 - torch-version: "2.5.1" cuda-version: "12.9.1" - torch-version: "2.6.3" cuda-version: "12.9.1" - torch-version: "2.7.1" cuda-version: "12.9.1" # flash-attn 2.7.4 does not build in GitHub Hosted Runner - flash-attn-version: "2.7.4" uses: ./.github/workflows/build_linux.yml with: flash-attn-version: ${{ matrix.flash-attn-version }} python-version: ${{ matrix.python-version }} torch-version: ${{ matrix.torch-version }} cuda-version: ${{ matrix.cuda-version }} secrets: inherit # build_wheels_linux_self_hosted: # name: Build Linux (self-hosted) # needs: create_releases # strategy: # fail-fast: false # matrix: # flash-attn-version: ["2.8.3"] # python-version: ["3.10", "3.11", "3.12"] # torch-version: ["2.5.1", "2.6.0", "2.7.1", "2.8.0"] # # https://developer.nvidia.com/cuda-toolkit-archive # cuda-version: ["12.4.1", "12.8.1", "12.9.1"] # exclude: # # torch < 2.2 does not support Python 3.12 # - python-version: "3.12" # torch-version: "2.0.1" # - python-version: "3.12" # torch-version: "2.1.2" # # torch 2.0.1 does not support CUDA 12.x # - torch-version: "2.0.1" # cuda-version: "12.1.1" # - torch-version: "2.0.1" # cuda-version: "12.4.1" # - torch-version: "2.0.1" # cuda-version: "12.6.3" # - torch-version: "2.0.1" # cuda-version: "12.8.1" # # torch 2.6.0 does not support CUDA 12.1 # - torch-version: "2.6.0" # cuda-version: "12.1.1" # # torch 2.7.0 does not support CUDA 12.4 # - torch-version: "2.7.0" # cuda-version: "12.4.1" # # torch < 2.8 does not support CUDA 12.9 # - torch-version: "2.5.1" # cuda-version: "12.9.1" # - torch-version: "2.6.3" # cuda-version: "12.9.1" # - torch-version: "2.7.1" # cuda-version: "12.9.1" # uses: ./.github/workflows/build_linux_self_host.yml # with: # flash-attn-version: ${{ matrix.flash-attn-version }} # python-version: ${{ matrix.python-version }} # torch-version: ${{ matrix.torch-version }} # cuda-version: ${{ matrix.cuda-version }} # secrets: inherit # ######################################################### # Windows # ######################################################### # build_wheels_windows: # name: Build Windows # needs: create_releases # strategy: # fail-fast: false # matrix: # flash-attn-version: ["2.8.2"] # python-version: ["3.13"] # torch-version: ["2.6.0", "2.7.1", "2.8.0"] # # https://developer.nvidia.com/cuda-toolkit-archive # cuda-version: ["12.4.1", "12.6.3", "12.8.1", "12.9.1"] # exclude: # # torch < 2.2 does not support Python 3.12 # - python-version: "3.12" # torch-version: "2.0.1" # - python-version: "3.12" # torch-version: "2.1.2" # # torch 2.0.1 does not support CUDA 12.x # - torch-version: "2.0.1" # cuda-version: "12.1.1" # - torch-version: "2.0.1" # cuda-version: "12.4.1" # - torch-version: "2.0.1" # cuda-version: "12.6.3" # - torch-version: "2.0.1" # cuda-version: "12.8.1" # # torch 2.6.0 does not support CUDA 12.1 # - torch-version: "2.6.0" # cuda-version: "12.1.1" # # torch 2.7.0 does not support CUDA 12.4 # - torch-version: "2.7.0" # cuda-version: "12.4.1" # # torch < 2.8 does not support CUDA 12.9 # - torch-version: "2.5.1" # cuda-version: "12.9.1" # - torch-version: "2.6.3" # cuda-version: "12.9.1" # - torch-version: "2.7.1" # cuda-version: "12.9.1" # uses: ./.github/workflows/build_windows.yml # with: # flash-attn-version: ${{ matrix.flash-attn-version }} # python-version: ${{ matrix.python-version }} # torch-version: ${{ matrix.torch-version }} # cuda-version: ${{ matrix.cuda-version }} # secrets: inherit # build_wheels_windows_code_build: # name: Build Windows (AWS CodeBuild) # needs: create_releases # strategy: # fail-fast: false # matrix: # flash-attn-version: ["2.7.4", "2.8.2"] # python-version: ["3.10", "3.11", "3.12"] # torch-version: ["2.7.1", "2.8.0"] # # https://developer.nvidia.com/cuda-toolkit-archive # cuda-version: ["12.8.1"] # exclude: # # torch < 2.2 does not support Python 3.12 # - python-version: "3.12" # torch-version: "2.0.1" # - python-version: "3.12" # torch-version: "2.1.2" # # torch 2.0.1 does not support CUDA 12.x # - torch-version: "2.0.1" # cuda-version: "12.1.1" # - torch-version: "2.0.1" # cuda-version: "12.4.1" # - torch-version: "2.0.1" # cuda-version: "12.6.3" # - torch-version: "2.0.1" # cuda-version: "12.8.1" # # torch 2.6.0 does not support CUDA 12.1 # - torch-version: "2.6.0" # cuda-version: "12.1.1" # # torch 2.7.0 does not support CUDA 12.4 # - torch-version: "2.7.0" # cuda-version: "12.4.1" # # torch < 2.8 does not support CUDA 12.9 # - torch-version: "2.5.1" # cuda-version: "12.9.1" # - torch-version: "2.6.3" # cuda-version: "12.9.1" # - torch-version: "2.7.1" # cuda-version: "12.9.1" # uses: ./.github/workflows/build_windows_code_build.yml # with: # flash-attn-version: ${{ matrix.flash-attn-version }} # python-version: ${{ matrix.python-version }} # torch-version: ${{ matrix.torch-version }} # cuda-version: ${{ matrix.cuda-version }} # secrets: inherit update_release_notes: name: Update Release Notes needs: # [build_wheels_linux, build_wheels_linux_self_hosted, build_wheels_windows] [build_wheels_linux, build_wheels_windows] permissions: contents: write if: always() runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: 3.12 - name: Install dependencies run: pip install pandas - name: Generate Release Notes env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | gh release view "${{ github.ref_name }}" --json assets > /tmp/assets.json python create_release_note.py /tmp/assets.json > /tmp/release_notes.md gh release edit "${{ github.ref_name }}" --notes-file /tmp/release_notes.md - name: Update README history and packages run: | cat /tmp/release_notes.md | python insert_history.py \ --notes - \ --tag "${{ github.ref_name }}" \ --repo "${{ github.repository }}" python generate_packages_table.py --update-readme - name: Commit and push README updates env: DEFAULT_BRANCH: ${{ github.event.repository.default_branch }} run: | git config --global user.name "github-actions[bot]" git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" if git diff --quiet; then echo "No README updates to commit." exit 0 fi git commit -am "docs: update README for ${{ github.ref_name }}" git push origin HEAD:"${DEFAULT_BRANCH}"