mirror of
https://github.com/apache/maven-mvnd.git
synced 2025-10-15 14:50:54 +00:00
Release binaries: linux amd64, macos amd64, macos aarch64, windows amd64 (#1016)
GH Action and related changes to finally cover all targeted OS/platforms with native binary. Changes: * no source change * POM change: using released Maven 3.9.8 (and added access to staged Maven 3.9.8) * Provide 4 plaf binaries: linux amd64, windows amd64, mac amd64 and mac aarch64 * adopt GH workflows for these changes (using "OS" alone is not enough) * adopt generally GraalVM naming and use them consecutively
This commit is contained in:
31
.github/workflows/early-access.yaml
vendored
31
.github/workflows/early-access.yaml
vendored
@@ -31,7 +31,7 @@ jobs:
|
|||||||
default-build:
|
default-build:
|
||||||
name: 'Default build (without Graal)'
|
name: 'Default build (without Graal)'
|
||||||
if: startsWith(github.event.head_commit.message, '[release] Release ') != true
|
if: startsWith(github.event.head_commit.message, '[release] Release ') != true
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout'
|
- name: 'Checkout'
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@@ -42,7 +42,7 @@ jobs:
|
|||||||
distribution: 'temurin'
|
distribution: 'temurin'
|
||||||
|
|
||||||
- name: 'Run default (non-native) build'
|
- name: 'Run default (non-native) build'
|
||||||
run: ./mvnw verify -Dmrm=false -V -B -ntp -e
|
run: ./mvnw verify -Dmrm=false -V -B -ntp -e -s .mvn/release-settings.xml
|
||||||
|
|
||||||
- name: 'Upload daemon test logs'
|
- name: 'Upload daemon test logs'
|
||||||
if: always()
|
if: always()
|
||||||
@@ -57,7 +57,8 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ ubuntu-latest, macos-latest, windows-latest ]
|
# binaries wanted: linux amd64, mac intel, mac M1, windows x86
|
||||||
|
os: [ ubuntu-latest, macos-13, macos-14, windows-latest ]
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@@ -67,9 +68,23 @@ jobs:
|
|||||||
- name: 'Set vars'
|
- name: 'Set vars'
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
ARCH=$(echo '${{ runner.arch }}' | awk '{print tolower($0)}')
|
||||||
|
if [[ $ARCH == 'x64' ]]
|
||||||
|
then
|
||||||
|
echo "ARCH=amd64" >> $GITHUB_ENV
|
||||||
|
elif [[ $ARCH == 'arm64' ]]
|
||||||
|
then
|
||||||
|
echo "ARCH=aarch64" >> $GITHUB_ENV
|
||||||
|
else
|
||||||
|
echo "ARCH=$ARCH" >> $GITHUB_ENV
|
||||||
|
fi
|
||||||
OS=$(echo '${{ runner.os }}' | awk '{print tolower($0)}')
|
OS=$(echo '${{ runner.os }}' | awk '{print tolower($0)}')
|
||||||
[[ $OS == 'ubuntu' ]] && echo "OS=linux" >> $GITHUB_ENV || echo "OS=$OS" >> $GITHUB_ENV
|
if [[ $OS == 'macos' ]]
|
||||||
[[ $OS == 'macos' ]] && echo "OS=darwin" >> $GITHUB_ENV || echo "OS=$OS" >> $GITHUB_ENV
|
then
|
||||||
|
echo "OS=darwin" >> $GITHUB_ENV
|
||||||
|
else
|
||||||
|
echo "OS=$OS" >> $GITHUB_ENV
|
||||||
|
fi
|
||||||
echo "VERSION=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
|
echo "VERSION=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: 'Set up Graal'
|
- name: 'Set up Graal'
|
||||||
@@ -105,7 +120,7 @@ jobs:
|
|||||||
objcopy --redefine-syms=client/src/main/resources/glibc/glibc.redef client/target/graalvm-libs-for-glibc-2.12/Scrt1.o 2>/dev/null
|
objcopy --redefine-syms=client/src/main/resources/glibc/glibc.redef client/target/graalvm-libs-for-glibc-2.12/Scrt1.o 2>/dev/null
|
||||||
|
|
||||||
- name: 'Build native distribution'
|
- name: 'Build native distribution'
|
||||||
run: ./mvnw verify -Pnative -Dmrm=false -V -B -ntp -e
|
run: ./mvnw verify -Pnative -Dmrm=false -V -B -ntp -e -s .mvn/release-settings.xml
|
||||||
|
|
||||||
- name: 'Verify native binary for only requiring glibc 2.12'
|
- name: 'Verify native binary for only requiring glibc 2.12'
|
||||||
if: ${{ env.OS == 'linux' }}
|
if: ${{ env.OS == 'linux' }}
|
||||||
@@ -120,11 +135,11 @@ jobs:
|
|||||||
if: always()
|
if: always()
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: daemon-test-logs-${{ env.OS }}
|
name: daemon-test-logs-${{ env.OS }}-${{ env.ARCH }}
|
||||||
path: integration-tests/target/mvnd-tests/**/daemon*.log
|
path: integration-tests/target/mvnd-tests/**/daemon*.log
|
||||||
|
|
||||||
- name: 'Upload artifact'
|
- name: 'Upload artifact'
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: mvnd-${{ env.OS }}
|
name: mvnd-${{ env.OS }}-${{ env.ARCH }}
|
||||||
path: dist/target/maven-mvnd-*.zip
|
path: dist/target/maven-mvnd-*.zip
|
||||||
|
67
.github/workflows/release.yaml
vendored
67
.github/workflows/release.yaml
vendored
@@ -34,7 +34,8 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: true
|
fail-fast: true
|
||||||
matrix:
|
matrix:
|
||||||
os: [ ubuntu-latest, macos-latest, windows-latest ]
|
# binaries wanted: linux amd64, mac intel, mac M1, windows x86
|
||||||
|
os: [ ubuntu-latest, macos-13, macos-14, windows-latest ]
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@@ -44,9 +45,23 @@ jobs:
|
|||||||
- name: 'Set vars'
|
- name: 'Set vars'
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
ARCH=$(echo '${{ runner.arch }}' | awk '{print tolower($0)}')
|
||||||
|
if [[ $ARCH == 'x64' ]]
|
||||||
|
then
|
||||||
|
echo "ARCH=amd64" >> $GITHUB_ENV
|
||||||
|
elif [[ $ARCH == 'arm64' ]]
|
||||||
|
then
|
||||||
|
echo "ARCH=aarch64" >> $GITHUB_ENV
|
||||||
|
else
|
||||||
|
echo "ARCH=$ARCH" >> $GITHUB_ENV
|
||||||
|
fi
|
||||||
OS=$(echo '${{ runner.os }}' | awk '{print tolower($0)}')
|
OS=$(echo '${{ runner.os }}' | awk '{print tolower($0)}')
|
||||||
[[ $OS == 'ubuntu' ]] && echo "OS=linux" >> $GITHUB_ENV || echo "OS=$OS" >> $GITHUB_ENV
|
if [[ $OS == 'macos' ]]
|
||||||
[[ $OS == 'macos' ]] && echo "OS=darwin" >> $GITHUB_ENV || echo "OS=$OS" >> $GITHUB_ENV
|
then
|
||||||
|
echo "OS=darwin" >> $GITHUB_ENV
|
||||||
|
else
|
||||||
|
echo "OS=$OS" >> $GITHUB_ENV
|
||||||
|
fi
|
||||||
echo "VERSION=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
|
echo "VERSION=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: 'Set up Graal'
|
- name: 'Set up Graal'
|
||||||
@@ -103,7 +118,7 @@ jobs:
|
|||||||
|
|
||||||
source:
|
source:
|
||||||
name: 'Build source distributions'
|
name: 'Build source distributions'
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: 'Check out repository'
|
- name: 'Check out repository'
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@@ -111,9 +126,23 @@ jobs:
|
|||||||
- name: 'Set vars'
|
- name: 'Set vars'
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
ARCH=$(echo '${{ runner.arch }}' | awk '{print tolower($0)}')
|
||||||
|
if [[ $ARCH == 'x64' ]]
|
||||||
|
then
|
||||||
|
echo "ARCH=amd64" >> $GITHUB_ENV
|
||||||
|
elif [[ $ARCH == 'arm64' ]]
|
||||||
|
then
|
||||||
|
echo "ARCH=aarch64" >> $GITHUB_ENV
|
||||||
|
else
|
||||||
|
echo "ARCH=$ARCH" >> $GITHUB_ENV
|
||||||
|
fi
|
||||||
OS=$(echo '${{ runner.os }}' | awk '{print tolower($0)}')
|
OS=$(echo '${{ runner.os }}' | awk '{print tolower($0)}')
|
||||||
[[ $OS == 'ubuntu' ]] && echo "OS=linux" >> $GITHUB_ENV || echo "OS=$OS" >> $GITHUB_ENV
|
if [[ $OS == 'macos' ]]
|
||||||
[[ $OS == 'macos' ]] && echo "OS=darwin" >> $GITHUB_ENV || echo "OS=$OS" >> $GITHUB_ENV
|
then
|
||||||
|
echo "OS=darwin" >> $GITHUB_ENV
|
||||||
|
else
|
||||||
|
echo "OS=$OS" >> $GITHUB_ENV
|
||||||
|
fi
|
||||||
echo "VERSION=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
|
echo "VERSION=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: 'Set up Graal'
|
- name: 'Set up Graal'
|
||||||
@@ -136,7 +165,7 @@ jobs:
|
|||||||
target/maven-mvnd-*.tar.gz
|
target/maven-mvnd-*.tar.gz
|
||||||
|
|
||||||
release:
|
release:
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-latest
|
||||||
needs: [build, source]
|
needs: [build, source]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@@ -158,8 +187,8 @@ jobs:
|
|||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: ~/.m2
|
path: ~/.m2
|
||||||
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
|
key: ${{ runner.os }}-${{ runner.arch }}-m2-${{ hashFiles('**/pom.xml') }}
|
||||||
restore-keys: ${{ runner.os }}-m2
|
restore-keys: ${{ runner.os }}-${{ runner.arch }}-m2
|
||||||
|
|
||||||
- name: ls -R
|
- name: ls -R
|
||||||
run: ls -R
|
run: ls -R
|
||||||
@@ -239,6 +268,26 @@ jobs:
|
|||||||
asset_name: maven-mvnd-${{ env.VERSION }}-darwin-amd64.tar.gz
|
asset_name: maven-mvnd-${{ env.VERSION }}-darwin-amd64.tar.gz
|
||||||
asset_content_type: application/x-gzip
|
asset_content_type: application/x-gzip
|
||||||
|
|
||||||
|
- name: Deploy maven-mvnd-darwin-aarch64.zip
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
|
asset_path: artifacts/dist/target/maven-mvnd-${{ env.VERSION }}-darwin-aarch64.zip
|
||||||
|
asset_name: maven-mvnd-${{ env.VERSION }}-darwin-aarch64.zip
|
||||||
|
asset_content_type: application/zip
|
||||||
|
|
||||||
|
- name: Deploy maven-mvnd-darwin-aarch.tar.gz
|
||||||
|
uses: actions/upload-release-asset@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
|
asset_path: artifacts/dist/target/maven-mvnd-${{ env.VERSION }}-darwin-aarch64.tar.gz
|
||||||
|
asset_name: maven-mvnd-${{ env.VERSION }}-darwin-aarch64.tar.gz
|
||||||
|
asset_content_type: application/x-gzip
|
||||||
|
|
||||||
- name: Deploy maven-mvnd-windows-amd64.zip
|
- name: Deploy maven-mvnd-windows-amd64.zip
|
||||||
uses: actions/upload-release-asset@v1
|
uses: actions/upload-release-asset@v1
|
||||||
env:
|
env:
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>maven-staging-1</id>
|
<id>maven-staging-1</id>
|
||||||
<url>https://repository.apache.org/content/repositories/maven-1859/</url>
|
<url>https://repository.apache.org/content/repositories/maven-2146/</url>
|
||||||
<releases>
|
<releases>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
</releases>
|
</releases>
|
||||||
|
2
pom.xml
2
pom.xml
@@ -84,7 +84,7 @@
|
|||||||
<jakarta.inject.version>1.0</jakarta.inject.version>
|
<jakarta.inject.version>1.0</jakarta.inject.version>
|
||||||
<jansi.version>2.4.1</jansi.version>
|
<jansi.version>2.4.1</jansi.version>
|
||||||
<jline.version>3.26.1</jline.version>
|
<jline.version>3.26.1</jline.version>
|
||||||
<maven.version>3.9.8-20240612.175612-19</maven.version>
|
<maven.version>3.9.8</maven.version>
|
||||||
<!-- Keep in sync with Maven -->
|
<!-- Keep in sync with Maven -->
|
||||||
<maven.resolver.version>1.9.20</maven.resolver.version>
|
<maven.resolver.version>1.9.20</maven.resolver.version>
|
||||||
<slf4j.version>1.7.36</slf4j.version>
|
<slf4j.version>1.7.36</slf4j.version>
|
||||||
|
Reference in New Issue
Block a user