From d0d411fdcbafc3551cbf8f60fd90a86fa574c559 Mon Sep 17 00:00:00 2001 From: Malte Brunnlieb Date: Tue, 28 Jul 2026 15:02:36 +0200 Subject: [PATCH 1/3] devonfw/homebrew-IDEasy#4: publish the Homebrew formula as part of the release Homebrew is a primary distribution channel, so the formula is published synchronously by this workflow instead of by a decoupled follow-up automation whose failures nobody notices. The tap has been stuck at 2026.04.002 since May because that automation silently produced unmergeable pull requests. - resolve the release version once in a dedicated job and pass it to every downstream job. .mvn/maven.config is rewritten twice during the release, so re-deriving the version later resolved a different value depending on the point in time, and the same value was called next_version in one step and current_version in the next. - wait until the deployment is published instead of merely validated. mvn deploy returned as soon as Central had validated the bundle, so the GitHub release notes already linked to Maven Central URLs that were not resolvable yet. - replace the nexus-staging configuration for the retired OSSRH host s01.oss.sonatype.org with the central-publishing plugin that actually performs the deployment. - compute the formula checksums from the archives that were just deployed and verify that Central serves the same bytes. - render, audit, install and test the formula on macOS before pushing it to the tap, so the tap is never left in a broken state. - add the missing linux-arm64 download to the release notes. --- .github/workflows/release.yml | 181 +++++++++++++++++++++++++++++----- CHANGELOG.adoc | 1 + pom.xml | 18 ++-- 3 files changed, 167 insertions(+), 33 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6fd74ccc6..8eda41405 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,10 +10,39 @@ permissions: jobs: + # Resolves the version to be released exactly once, so that every downstream job refers to the + # same value. .mvn/maven.config is rewritten twice during this workflow (to the release version + # and afterwards to the next snapshot), so re-reading it in a later job would resolve a different + # version depending on when it happens. + resolve-version: + name: Resolve release version + runs-on: ubuntu-latest + outputs: + release_version: ${{ steps.resolve.outputs.release_version }} + snapshot_version: ${{ steps.resolve.outputs.snapshot_version }} + steps: + - uses: actions/checkout@v3 + - name: Resolve version from .mvn/maven.config + id: resolve + shell: bash + run: | + maven_config="$(cat .mvn/maven.config)" + snapshot_version="${maven_config/#*-Drevision=}" + snapshot_version="${snapshot_version/ */}" + release_version="${snapshot_version/-SNAPSHOT/}" + if [ -z "${release_version}" ]; then + echo "ERROR: could not resolve the release version from .mvn/maven.config." >&2 + exit 1 + fi + echo "Releasing ${release_version} (from ${snapshot_version})" + echo "release_version=${release_version}" >> "$GITHUB_OUTPUT" + echo "snapshot_version=${snapshot_version}" >> "$GITHUB_OUTPUT" + # Adjusts the revision to the latest version, builds images for each OS type/architecture using matrix:os and uploads each binary as a separate artifact build-natives: name: Build native images runs-on: ${{ matrix.os }} + needs: resolve-version strategy: matrix: # ATTENTION: see also nightly-build.yml, image name are referenced in cli/src/main/assembly/*.xml files, on update do not forget to also update there os: [ windows-latest, ubuntu-latest, ubuntu-22.04-arm, macos-latest, macos-15-intel ] @@ -30,12 +59,8 @@ jobs: - name: Build native image shell: bash run: | - maven_config="$(cat .mvn/maven.config)" - current_version="${maven_config/#*-Drevision=}" - current_version="${current_version/ */}" - next_version="${current_version/-SNAPSHOT/}" cd cli - mvn -B -ntp -Drevision=${next_version} -Pnative -DskipTests=true package + mvn -B -ntp -Drevision=${{ needs.resolve-version.outputs.release_version }} -Pnative -DskipTests=true package - name: Ad-hoc sign native image (macOS) if: runner.os == 'macOS' shell: bash @@ -97,7 +122,12 @@ jobs: release: name: Release on Sonatype OSS runs-on: ubuntu-latest - needs: build-natives + needs: [ resolve-version, build-natives ] + outputs: + sha_mac_arm64: ${{ steps.checksums.outputs.sha_mac_arm64 }} + sha_mac_x64: ${{ steps.checksums.outputs.sha_mac_x64 }} + sha_linux_arm64: ${{ steps.checksums.outputs.sha_linux_arm64 }} + sha_linux_x64: ${{ steps.checksums.outputs.sha_linux_x64 }} steps: - name: Checkout uses: actions/checkout@v3 @@ -118,50 +148,147 @@ jobs: path: ./cli/target/ - name: Create assemblies and publish to Apache Maven Central run: | - maven_config="$(cat .mvn/maven.config)" - current_version="${maven_config/#*-Drevision=}" - current_version="${current_version/ */}" - next_version="${current_version/-SNAPSHOT/}" - sed -i "s/${current_version}/${next_version}/" .mvn/maven.config + sed -i "s/${SNAPSHOT_VERSION}/${RELEASE_VERSION}/" .mvn/maven.config git config --global user.email ${{ secrets.BUILD_USER_EMAIL }} git config --global user.name ${{ secrets.BUILD_USER }} git add -f .mvn/maven.config - git commit -m "set release version to ${next_version}" - git tag -a "release/${next_version}" -m "tagged version ${next_version}" + git commit -m "set release version to ${RELEASE_VERSION}" + git tag -a "release/${RELEASE_VERSION}" -m "tagged version ${RELEASE_VERSION}" export GPG_TTY=$TTY mkdir -p ./cli/target/ mvn --settings .mvn/settings.xml -B -ntp deploy -Passembly,msi,deploy -Dgpg.pin.entry.mode=loopback -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }} env: + RELEASE_VERSION: ${{ needs.resolve-version.outputs.release_version }} + SNAPSHOT_VERSION: ${{ needs.resolve-version.outputs.snapshot_version }} SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + - name: Compute checksums of the released archives + id: checksums + env: + RELEASE_VERSION: ${{ needs.resolve-version.outputs.release_version }} + run: | + # The archives that were just deployed are the exact bytes Maven Central will serve, so + # the Homebrew formula can be built from them without downloading anything. + for platform in mac-arm64 mac-x64 linux-arm64 linux-x64; do + archive="cli/target/ide-cli-${RELEASE_VERSION}-${platform}.tar.gz" + if [ ! -f "${archive}" ]; then + echo "ERROR: released archive ${archive} not found." >&2 + exit 1 + fi + sha="$(shasum -a 256 "${archive}" | awk '{print $1}')" + echo "${platform}: ${sha}" + echo "sha_${platform//-/_}=${sha}" >> "$GITHUB_OUTPUT" + done - name: set next version & create gitHub release run: | - maven_config="$(cat .mvn/maven.config)" - current_version="${maven_config/#*-Drevision=}" - current_version="${current_version/ */}" - current_segment="${current_version/*./}" + release_version="${RELEASE_VERSION}" + current_segment="${release_version/*./}" last_digits="${current_segment/[^0-9]*/}" suffix="${current_segment/${last_digits}/}" (( next_segment=${last_digits}+1 )) while [ ${#next_segment} -lt 3 ]; do next_segment="0${next_segment}"; done - next_version="${current_version%.*}.${next_segment}${suffix}-SNAPSHOT" - sed -i "s/${current_version}/${next_version}/" .mvn/maven.config + next_snapshot_version="${release_version%.*}.${next_segment}${suffix}-SNAPSHOT" + sed -i "s/${release_version}/${next_snapshot_version}/" .mvn/maven.config git add -f .mvn/maven.config - git commit -m "set next version to ${next_version}" + git commit -m "set next version to ${next_snapshot_version}" # prevent GH006 error when pushing to protected branch git push git push --tags - noDotVersion="${current_version//.}" - gh release create "release/${current_version}" ./cli/target/*.tar.gz --title "${current_version}" --notes "# Download - * Windows-MSI: https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${current_version}/ide-cli-${current_version}-windows-x64.msi - * Windows: https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${current_version}/ide-cli-${current_version}-windows-x64.tar.gz - * Mac(arm64): https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${current_version}/ide-cli-${current_version}-mac-arm64.tar.gz - * Mac(x64): https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${current_version}/ide-cli-${current_version}-mac-x64.tar.gz - * Linux: https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${current_version}/ide-cli-${current_version}-linux-x64.tar.gz + noDotVersion="${release_version//.}" + gh release create "release/${release_version}" ./cli/target/*.tar.gz --title "${release_version}" --notes "# Download + * Windows-MSI: https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${release_version}/ide-cli-${release_version}-windows-x64.msi + * Windows: https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${release_version}/ide-cli-${release_version}-windows-x64.tar.gz + * Mac(arm64): https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${release_version}/ide-cli-${release_version}-mac-arm64.tar.gz + * Mac(x64): https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${release_version}/ide-cli-${release_version}-mac-x64.tar.gz + * Linux(arm64): https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${release_version}/ide-cli-${release_version}-linux-arm64.tar.gz + * Linux(x64): https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${release_version}/ide-cli-${release_version}-linux-x64.tar.gz # Changes https://github.com/devonfw/IDEasy/blob/main/CHANGELOG.adoc#${noDotVersion/-beta/}" env: + RELEASE_VERSION: ${{ needs.resolve-version.outputs.release_version }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} BUILD_USER: ${{ secrets.BUILD_USER }} BUILD_USER_PASSWD: ${{ secrets.BUILD_USER_PASSWD }} + + # Homebrew is a primary distribution channel for IDEasy. The formula is therefore published as + # part of this release and not by a decoupled follow-up automation: if it cannot be published, + # this release fails and the failure is visible right here. + await-central: + name: Await publication on Maven Central + runs-on: ubuntu-latest + needs: [ resolve-version, release ] + steps: + - name: Checkout Homebrew tap + uses: actions/checkout@v4 + with: + repository: devonfw/homebrew-IDEasy + token: ${{ secrets.ACTION_PUSH_TOKEN }} + - name: Wait until the release archives are served by Maven Central + run: | + ./wait-for-central.sh "${{ needs.resolve-version.outputs.release_version }}" \ + "${{ needs.release.outputs.sha_mac_arm64 }}" \ + "${{ needs.release.outputs.sha_mac_x64 }}" \ + "${{ needs.release.outputs.sha_linux_arm64 }}" \ + "${{ needs.release.outputs.sha_linux_x64 }}" + + verify-homebrew: + name: Verify Homebrew formula + needs: [ resolve-version, release, await-central ] + strategy: + fail-fast: false + matrix: + os: [ macos-latest, macos-15-intel ] + runs-on: ${{ matrix.os }} + steps: + - name: Checkout Homebrew tap + uses: actions/checkout@v4 + with: + repository: devonfw/homebrew-IDEasy + token: ${{ secrets.ACTION_PUSH_TOKEN }} + - name: Render formula + run: | + ./render-formula.sh "${{ needs.resolve-version.outputs.release_version }}" \ + "${{ needs.release.outputs.sha_mac_arm64 }}" \ + "${{ needs.release.outputs.sha_mac_x64 }}" \ + "${{ needs.release.outputs.sha_linux_arm64 }}" \ + "${{ needs.release.outputs.sha_linux_x64 }}" + - name: Set up Homebrew + uses: Homebrew/actions/setup-homebrew@master + - name: Audit formula + run: brew audit --strict --online --formula ./Formula/ideasy.rb + - name: Install formula + run: brew install --formula ./Formula/ideasy.rb + - name: Test formula + run: brew test --formula ./Formula/ideasy.rb + + publish-homebrew: + name: Publish Homebrew formula + runs-on: ubuntu-latest + needs: [ resolve-version, release, verify-homebrew ] + steps: + - name: Checkout Homebrew tap + uses: actions/checkout@v4 + with: + repository: devonfw/homebrew-IDEasy + token: ${{ secrets.ACTION_PUSH_TOKEN }} + - name: Render formula + run: | + ./render-formula.sh "${{ needs.resolve-version.outputs.release_version }}" \ + "${{ needs.release.outputs.sha_mac_arm64 }}" \ + "${{ needs.release.outputs.sha_mac_x64 }}" \ + "${{ needs.release.outputs.sha_linux_arm64 }}" \ + "${{ needs.release.outputs.sha_linux_x64 }}" + - name: Commit and push formula + env: + RELEASE_VERSION: ${{ needs.resolve-version.outputs.release_version }} + run: | + if git diff --quiet -- Formula/ideasy.rb; then + echo "Formula already up to date for ${RELEASE_VERSION}, nothing to publish." + exit 0 + fi + git config user.email ${{ secrets.BUILD_USER_EMAIL }} + git config user.name ${{ secrets.BUILD_USER }} + git add Formula/ideasy.rb + git commit -m "ideasy ${RELEASE_VERSION}" + git push diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 11d8fd3d6..aefbedee6 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -8,6 +8,7 @@ Release with new features and bugfixes: * https://github.com/devonfw/IDEasy/issues/2176[#2176]: Support 7z archive extraction * https://github.com/devonfw/IDEasy/issues/2100[#2100]: Fix Python not available for Mac x64 +* https://github.com/devonfw/homebrew-IDEasy/issues/4[homebrew-IDEasy#4]: Publish the Homebrew formula as part of the release so `brew upgrade ideasy` gets new versions The full list of changes for this release can be found in https://github.com/devonfw/IDEasy/milestone/48?closed=1[milestone 2026.08.001]. diff --git a/pom.xml b/pom.xml index 87760bc1b..1f1bcbaca 100644 --- a/pom.xml +++ b/pom.xml @@ -296,14 +296,20 @@ - org.sonatype.plugins - nexus-staging-maven-plugin - 1.7.0 + org.sonatype.central + central-publishing-maven-plugin true - repository - https://s01.oss.sonatype.org/ - true + repository + true + + published + 3600 From d00458626ff10d2ec07da84ae6162d50739e80ad Mon Sep 17 00:00:00 2001 From: Malte Brunnlieb Date: Tue, 28 Jul 2026 21:20:34 +0200 Subject: [PATCH 2/3] Update CHANGELOG.adoc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jörg Hohwiller --- CHANGELOG.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index aefbedee6..0af898e5f 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -8,7 +8,7 @@ Release with new features and bugfixes: * https://github.com/devonfw/IDEasy/issues/2176[#2176]: Support 7z archive extraction * https://github.com/devonfw/IDEasy/issues/2100[#2100]: Fix Python not available for Mac x64 -* https://github.com/devonfw/homebrew-IDEasy/issues/4[homebrew-IDEasy#4]: Publish the Homebrew formula as part of the release so `brew upgrade ideasy` gets new versions +* https://github.com/devonfw/IDEasy/issues/2224[#2224]: Brew upgrade ideasy not working The full list of changes for this release can be found in https://github.com/devonfw/IDEasy/milestone/48?closed=1[milestone 2026.08.001]. From 10f668c85f0f4a7a8e68b955ffa9506d0a7d1346 Mon Sep 17 00:00:00 2001 From: Malte Brunnlieb Date: Tue, 28 Jul 2026 21:40:33 +0200 Subject: [PATCH 3/3] #2224: address review findings - use RELEASE_VERSION directly instead of shadowing it in a lower case variable. - call the publishing sequence of the tap as a reusable workflow instead of duplicating its jobs here. Calling it with 'uses' keeps the failure loud: a failure there fails this job and with it the release, which dispatching a separate workflow run would not. - reduce the deploy profile to the waiting behaviour that is actually added here. The plugin, its extension, publishingServerId and autoPublish are inherited from the deploy profile of com.devonfw:maven-parent, as the effective POM confirms. --- .github/workflows/release.yml | 113 ++++++++-------------------------- pom.xml | 17 +++-- 2 files changed, 33 insertions(+), 97 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8eda41405..935d8733f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -182,27 +182,26 @@ jobs: done - name: set next version & create gitHub release run: | - release_version="${RELEASE_VERSION}" - current_segment="${release_version/*./}" + current_segment="${RELEASE_VERSION/*./}" last_digits="${current_segment/[^0-9]*/}" suffix="${current_segment/${last_digits}/}" (( next_segment=${last_digits}+1 )) while [ ${#next_segment} -lt 3 ]; do next_segment="0${next_segment}"; done - next_snapshot_version="${release_version%.*}.${next_segment}${suffix}-SNAPSHOT" - sed -i "s/${release_version}/${next_snapshot_version}/" .mvn/maven.config + next_snapshot_version="${RELEASE_VERSION%.*}.${next_segment}${suffix}-SNAPSHOT" + sed -i "s/${RELEASE_VERSION}/${next_snapshot_version}/" .mvn/maven.config git add -f .mvn/maven.config git commit -m "set next version to ${next_snapshot_version}" # prevent GH006 error when pushing to protected branch git push git push --tags - noDotVersion="${release_version//.}" - gh release create "release/${release_version}" ./cli/target/*.tar.gz --title "${release_version}" --notes "# Download - * Windows-MSI: https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${release_version}/ide-cli-${release_version}-windows-x64.msi - * Windows: https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${release_version}/ide-cli-${release_version}-windows-x64.tar.gz - * Mac(arm64): https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${release_version}/ide-cli-${release_version}-mac-arm64.tar.gz - * Mac(x64): https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${release_version}/ide-cli-${release_version}-mac-x64.tar.gz - * Linux(arm64): https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${release_version}/ide-cli-${release_version}-linux-arm64.tar.gz - * Linux(x64): https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${release_version}/ide-cli-${release_version}-linux-x64.tar.gz + noDotVersion="${RELEASE_VERSION//.}" + gh release create "release/${RELEASE_VERSION}" ./cli/target/*.tar.gz --title "${RELEASE_VERSION}" --notes "# Download + * Windows-MSI: https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${RELEASE_VERSION}/ide-cli-${RELEASE_VERSION}-windows-x64.msi + * Windows: https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${RELEASE_VERSION}/ide-cli-${RELEASE_VERSION}-windows-x64.tar.gz + * Mac(arm64): https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${RELEASE_VERSION}/ide-cli-${RELEASE_VERSION}-mac-arm64.tar.gz + * Mac(x64): https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${RELEASE_VERSION}/ide-cli-${RELEASE_VERSION}-mac-x64.tar.gz + * Linux(arm64): https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${RELEASE_VERSION}/ide-cli-${RELEASE_VERSION}-linux-arm64.tar.gz + * Linux(x64): https://repo1.maven.org/maven2/com/devonfw/tools/IDEasy/ide-cli/${RELEASE_VERSION}/ide-cli-${RELEASE_VERSION}-linux-x64.tar.gz # Changes https://github.com/devonfw/IDEasy/blob/main/CHANGELOG.adoc#${noDotVersion/-beta/}" env: @@ -214,81 +213,19 @@ jobs: # Homebrew is a primary distribution channel for IDEasy. The formula is therefore published as # part of this release and not by a decoupled follow-up automation: if it cannot be published, # this release fails and the failure is visible right here. - await-central: - name: Await publication on Maven Central - runs-on: ubuntu-latest - needs: [ resolve-version, release ] - steps: - - name: Checkout Homebrew tap - uses: actions/checkout@v4 - with: - repository: devonfw/homebrew-IDEasy - token: ${{ secrets.ACTION_PUSH_TOKEN }} - - name: Wait until the release archives are served by Maven Central - run: | - ./wait-for-central.sh "${{ needs.resolve-version.outputs.release_version }}" \ - "${{ needs.release.outputs.sha_mac_arm64 }}" \ - "${{ needs.release.outputs.sha_mac_x64 }}" \ - "${{ needs.release.outputs.sha_linux_arm64 }}" \ - "${{ needs.release.outputs.sha_linux_x64 }}" - - verify-homebrew: - name: Verify Homebrew formula - needs: [ resolve-version, release, await-central ] - strategy: - fail-fast: false - matrix: - os: [ macos-latest, macos-15-intel ] - runs-on: ${{ matrix.os }} - steps: - - name: Checkout Homebrew tap - uses: actions/checkout@v4 - with: - repository: devonfw/homebrew-IDEasy - token: ${{ secrets.ACTION_PUSH_TOKEN }} - - name: Render formula - run: | - ./render-formula.sh "${{ needs.resolve-version.outputs.release_version }}" \ - "${{ needs.release.outputs.sha_mac_arm64 }}" \ - "${{ needs.release.outputs.sha_mac_x64 }}" \ - "${{ needs.release.outputs.sha_linux_arm64 }}" \ - "${{ needs.release.outputs.sha_linux_x64 }}" - - name: Set up Homebrew - uses: Homebrew/actions/setup-homebrew@master - - name: Audit formula - run: brew audit --strict --online --formula ./Formula/ideasy.rb - - name: Install formula - run: brew install --formula ./Formula/ideasy.rb - - name: Test formula - run: brew test --formula ./Formula/ideasy.rb - + # + # The publishing sequence itself lives in the tap, next to the formula and the scripts it renders, + # and is called as a reusable workflow so it exists exactly once. Calling it with 'uses' keeps the + # failure loud - a failure there fails this job and with it the release - which dispatching a + # separate workflow run would not. publish-homebrew: name: Publish Homebrew formula - runs-on: ubuntu-latest - needs: [ resolve-version, release, verify-homebrew ] - steps: - - name: Checkout Homebrew tap - uses: actions/checkout@v4 - with: - repository: devonfw/homebrew-IDEasy - token: ${{ secrets.ACTION_PUSH_TOKEN }} - - name: Render formula - run: | - ./render-formula.sh "${{ needs.resolve-version.outputs.release_version }}" \ - "${{ needs.release.outputs.sha_mac_arm64 }}" \ - "${{ needs.release.outputs.sha_mac_x64 }}" \ - "${{ needs.release.outputs.sha_linux_arm64 }}" \ - "${{ needs.release.outputs.sha_linux_x64 }}" - - name: Commit and push formula - env: - RELEASE_VERSION: ${{ needs.resolve-version.outputs.release_version }} - run: | - if git diff --quiet -- Formula/ideasy.rb; then - echo "Formula already up to date for ${RELEASE_VERSION}, nothing to publish." - exit 0 - fi - git config user.email ${{ secrets.BUILD_USER_EMAIL }} - git config user.name ${{ secrets.BUILD_USER }} - git add Formula/ideasy.rb - git commit -m "ideasy ${RELEASE_VERSION}" - git push + needs: [ resolve-version, release ] + uses: devonfw/homebrew-IDEasy/.github/workflows/publish-formula.yml@main + with: + version: ${{ needs.resolve-version.outputs.release_version }} + sha_mac_arm64: ${{ needs.release.outputs.sha_mac_arm64 }} + sha_mac_x64: ${{ needs.release.outputs.sha_mac_x64 }} + sha_linux_arm64: ${{ needs.release.outputs.sha_linux_arm64 }} + sha_linux_x64: ${{ needs.release.outputs.sha_linux_x64 }} + secrets: inherit diff --git a/pom.xml b/pom.xml index 1f1bcbaca..f33f3e4d0 100644 --- a/pom.xml +++ b/pom.xml @@ -296,18 +296,17 @@ + org.sonatype.central central-publishing-maven-plugin - true - repository - true - published 3600