From 08ff60f80eef73643dc677469a3dbbe025ad2634 Mon Sep 17 00:00:00 2001 From: Hugh Sorby Date: Fri, 12 Jun 2026 23:09:27 +1200 Subject: [PATCH 1/3] Don't push changes to main too early in finalise workflow. --- .github/workflows/release-finalise.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/release-finalise.yml b/.github/workflows/release-finalise.yml index 6c0435d8e..9a9175e22 100644 --- a/.github/workflows/release-finalise.yml +++ b/.github/workflows/release-finalise.yml @@ -355,7 +355,6 @@ jobs: git add -A git commit -m "Update main with release changes from ${{ needs.determine_release.outputs.release_branch }}." - git push origin main - name: Install CMake and Ninja if: ${{ inputs.successful }} From 44fe1927801c0a2679ba5e940a4d2bf3a692fa9e Mon Sep 17 00:00:00 2001 From: Hugh Sorby Date: Fri, 12 Jun 2026 23:39:53 +1200 Subject: [PATCH 2/3] Re-instate some changes that were overwritten. --- .github/workflows/deploy-on-release.yml | 33 +++++++++++------ .github/workflows/release-make.yml | 37 ++++++++----------- .../python/wheel_dependencies/CMakeLists.txt | 2 +- 3 files changed, 38 insertions(+), 34 deletions(-) diff --git a/.github/workflows/deploy-on-release.yml b/.github/workflows/deploy-on-release.yml index 8fcb0b3b5..2529f19df 100644 --- a/.github/workflows/deploy-on-release.yml +++ b/.github/workflows/deploy-on-release.yml @@ -280,18 +280,24 @@ jobs: strategy: fail-fast: false matrix: - os: [macos-15-intel, ubuntu-24.04, windows-2025] + os: [macos-15, ubuntu-24.04, ubuntu-24.04-arm, windows-2022, windows-11-arm] py: ['3.9', '3.10', '3.11', '3.12', '3.13'] include: - name: 'Windows' - os: windows-2025 + os: windows-2022 + - name: 'Windows ARM' + os: windows-11-arm - name: 'Linux' + os: ubuntu-24.04-arm + - name: 'Linux ARM' os: ubuntu-24.04 - name: 'macOS' - os: macos-15-intel + os: macos-15 exclude: - os: ubuntu-24.04 py: '3.9' + - os: ubuntu-24.04-arm + py: '3.9' steps: - name: Check out libCellML @@ -313,11 +319,14 @@ jobs: echo "build=cp${v/./}-*" >> $GITHUB_OUTPUT if [[ "macOS" == "${{ matrix.name }}" ]]; then echo "Setting macos_archs as: macos_archs='x86_64 arm64'" - echo 'macos_archs=x86_64 arm64' >> $GITHUB_OUTPUT - echo "macos_deployment_target=15.0" >> $GITHUB_OUTPUT - else - echo "Setting macos_archs as: macos_archs='x86_64'" - echo "macos_archs=x86_64" >> $GITHUB_OUTPUT + echo "macos_archs=x86_64 arm64" >> $GITHUB_OUTPUT + echo "macos_deployment_target=14.0" >> $GITHUB_OUTPUT + elif [[ "Windows" == "${{ matrix.name }}" ]]; then + echo "Setting win_arch as: win_arch=amd64" + echo "win_arch=amd64" >> $GITHUB_OUTPUT + elif [[ "Windows ARM" == "${{ matrix.name }}" ]]; then + echo "Setting win_arch as: win_arch=arm64" + echo "win_arch=arm64" >> $GITHUB_OUTPUT fi - name: Configure MSVC (Windows) @@ -339,12 +348,12 @@ jobs: CIBW_BUILD: ${{ steps.setup.outputs.build }} CIBW_TEST_SKIP: "*_arm64" CIBW_BEFORE_ALL_LINUX: yum install -y libxml2-devel || (apk add libxml2-dev && rm /usr/lib/cmake/libxml2/libxml2-config.cmake) - CIBW_BEFORE_ALL_WINDOWS: cd src/bindings/python && cmake -S wheel_dependencies -B build-wheel_dependencies -G Ninja && cd build-wheel_dependencies && ninja CIBW_ENVIRONMENT: > LIBCELLML_VERSION_TAG=${{ steps.setup.outputs.tag }} MACOSX_DEPLOYMENT_TARGET=${{ steps.setup.outputs.macos_deployment_target }} CIBW_REPAIR_WHEEL_COMMAND_MACOS: "" CIBW_BEFORE_BUILD_LINUX: pip install renamewheel + CIBW_BEFORE_BUILD_WINDOWS: call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" ${{ steps.setup.outputs.win_arch }} && cd src/bindings/python && cmake -S wheel_dependencies -B build-wheel_dependencies -G Ninja && cd build-wheel_dependencies && ninja CIBW_REPAIR_WHEEL_COMMAND_LINUX: renamewheel -w {dest_dir} {wheel} with: output-dir: wheelhouse @@ -553,8 +562,8 @@ jobs: run: | cd yggdrasil - git config user.name "libcellml-release-app" - git config user.email "actions@github.com" + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" git add L/libcellml/build_tarballs.jl git commit -m "libcellml ${{ github.event.release.tag_name }}" @@ -577,4 +586,4 @@ jobs: --head "${{ github.repository_owner }}:$branch" \ --base master \ --title "libcellml ${{ github.event.release.tag_name }}" \ - --body "Automated update for libCellML release ${{ github.event.release.tag_name }}." + --body "Automated update for libCellML release ${{ github.event.release.tag_name }}." \ No newline at end of file diff --git a/.github/workflows/release-make.yml b/.github/workflows/release-make.yml index 6151364f6..76a3095a2 100644 --- a/.github/workflows/release-make.yml +++ b/.github/workflows/release-make.yml @@ -45,17 +45,28 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout repository + + - name: Generate GitHub App token + id: app_token + uses: actions/create-github-app-token@v3 + with: + client-id: ${{ secrets.RELEASE_CLIENT_ID }} + private-key: ${{ secrets.RELEASE_PRIVATE_KEY }} + owner: ${{ github.repository_owner }} + repositories: libcellml + + - name: Checkout repository - staging branch uses: actions/checkout@v6 with: ref: ${{ needs.determine_release.outputs.release_branch }} fetch-depth: 0 path: repo-staging - - name: Checkout repository + - name: Checkout repository - release branch uses: actions/checkout@v6 with: ref: release + token: ${{ steps.app_token.outputs.token }} fetch-depth: 0 path: repo-release @@ -63,24 +74,8 @@ jobs: run: | cd repo-release - git config user.name "libcellml-release[bot]" - git config user.email "libcellml-release[bot]@users.noreply.github.com" - - - name: Generate GitHub App token - id: app_token - uses: actions/create-github-app-token@v3 - with: - client-id: ${{ secrets.RELEASE_CLIENT_ID }} - private-key: ${{ secrets.RELEASE_PRIVATE_KEY }} - owner: ${{ github.repository_owner }} - repositories: libcellml - - - name: Configure git authentication - run: | - cd repo-release - - git remote set-url origin \ - https://x-access-token:${{ steps.app_token.outputs.token }}@github.com/${{ github.repository }}.git + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" - name: Update release branch run: | @@ -132,4 +127,4 @@ jobs: gh release create "v${{ needs.determine_release.outputs.release_version }}" \ --title "v${{ needs.determine_release.outputs.release_version }}" \ - --notes "$note" ${prerelease_flag} + --notes "$note" ${prerelease_flag} \ No newline at end of file diff --git a/src/bindings/python/wheel_dependencies/CMakeLists.txt b/src/bindings/python/wheel_dependencies/CMakeLists.txt index 4d1b7d757..5429e30fb 100644 --- a/src/bindings/python/wheel_dependencies/CMakeLists.txt +++ b/src/bindings/python/wheel_dependencies/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.10) +cmake_minimum_required(VERSION 3.21) project(prepare_dependencies) From c4f490fee37756df41ab25f31bd8be494b214e93 Mon Sep 17 00:00:00 2001 From: Hugh Sorby Date: Fri, 12 Jun 2026 23:43:23 +1200 Subject: [PATCH 3/3] Add new lines at end of files. --- .github/workflows/deploy-on-release.yml | 2 +- .github/workflows/release-make.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-on-release.yml b/.github/workflows/deploy-on-release.yml index 2529f19df..2045fae2d 100644 --- a/.github/workflows/deploy-on-release.yml +++ b/.github/workflows/deploy-on-release.yml @@ -586,4 +586,4 @@ jobs: --head "${{ github.repository_owner }}:$branch" \ --base master \ --title "libcellml ${{ github.event.release.tag_name }}" \ - --body "Automated update for libCellML release ${{ github.event.release.tag_name }}." \ No newline at end of file + --body "Automated update for libCellML release ${{ github.event.release.tag_name }}." diff --git a/.github/workflows/release-make.yml b/.github/workflows/release-make.yml index 76a3095a2..283947d1c 100644 --- a/.github/workflows/release-make.yml +++ b/.github/workflows/release-make.yml @@ -127,4 +127,4 @@ jobs: gh release create "v${{ needs.determine_release.outputs.release_version }}" \ --title "v${{ needs.determine_release.outputs.release_version }}" \ - --notes "$note" ${prerelease_flag} \ No newline at end of file + --notes "$note" ${prerelease_flag}