Merge pull request #20 from Time-Machine-Lab/v1.0.0 #28
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release to Maven Central (JDK 11) | |
| on: | |
| workflow_dispatch: | |
| push: | |
| tags: | |
| - 'v*' # 推送以 v 开头的 tag 触发,比如 v1.0.0 | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| env: | |
| MAVEN_OPTS: "-Xmx1g" | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Temurin JDK 11 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: '11' | |
| cache: 'maven' | |
| - name: Set up Maven 3.9.8 | |
| uses: stCarolas/setup-maven@v4 | |
| with: | |
| maven-version: '3.9.8' | |
| - name: Prepare Maven settings.xml with OSSRH token | |
| run: | | |
| mkdir -p ~/.m2 | |
| cat > ~/.m2/settings.xml << 'EOF' | |
| <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" | |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> | |
| <servers> | |
| <server> | |
| <id>ossrh</id> | |
| <username>${env.OSSRH_TOKEN_USERNAME}</username> | |
| <password>${env.OSSRH_TOKEN_PASSWORD}</password> | |
| </server> | |
| </servers> | |
| </settings> | |
| EOF | |
| env: | |
| OSSRH_TOKEN_USERNAME: ${{ secrets.OSSRH_TOKEN_USERNAME }} | |
| OSSRH_TOKEN_PASSWORD: ${{ secrets.OSSRH_TOKEN_PASSWORD }} | |
| - name: Import GPG key | |
| uses: crazy-max/ghaction-import-gpg@v6 | |
| with: | |
| gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} | |
| passphrase: ${{ secrets.GPG_PASSPHRASE }} | |
| - name: Show Java and Maven versions | |
| run: | | |
| java -version | |
| mvn -v | |
| - name: Deploy to Central Portal | |
| run: | | |
| export GPG_TTY=$(tty) | |
| mvn -X -B -U \ | |
| -DskipTests=true \ | |
| -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }} \ | |
| -Dgpg.pinentry-mode=loopback \ | |
| clean deploy | |
| env: | |
| GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | |
| # 如果你的 POM 未配置 distributionManagement,或想强制直传,可用下面这个步骤替代上面的 Deploy: | |
| # - name: Deploy via altDeploymentRepository | |
| # run: | | |
| # mvn -X -B -U \ | |
| # -DskipTests=true \ | |
| # -Dgpg.skip=true \ | |
| # -DaltDeploymentRepository="ossrh::default::https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/" \ | |
| # clean deploy |