feat(流水线): github的流水线配置

This commit is contained in:
燕陇琪
2025-04-02 18:59:35 +08:00
parent 0c2e7b96ec
commit 88333ed930
2 changed files with 28 additions and 64 deletions

View File

@@ -1,33 +1,21 @@
name: 发布到 Maven Central name: Maven Central Repo Deployment
on: on:
release: release:
types: [created] types: [released]
# 可选:也可以手动触发
workflow_dispatch:
jobs: jobs:
publish: publish:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: 检出代码 - name: Checkout Git Repo
uses: actions/checkout@v3 uses: actions/checkout@v2
- name: Configure GPG Key
- name: 设置 JDK 1.8
uses: actions/setup-java@v3
with:
java-version: '8'
distribution: 'temurin'
cache: 'maven'
- name: 配置 GPG 密钥
run: | run: |
# 导入 GPG 密钥 # Setup GPG
echo "${{ secrets.GPG_SECRET }}" | base64 --decode > private.key echo "${{ secrets.GPG_SECRET }}" | base64 --decode > private.key
gpg --batch --import private.key gpg --batch --import private.key
rm private.key rm private.key
# 配置 GPG 为非交互模式 # Configure GPG for non-interactive use
mkdir -p ~/.gnupg/ mkdir -p ~/.gnupg/
echo "use-agent" > ~/.gnupg/gpg.conf echo "use-agent" > ~/.gnupg/gpg.conf
echo "pinentry-mode loopback" >> ~/.gnupg/gpg.conf echo "pinentry-mode loopback" >> ~/.gnupg/gpg.conf
@@ -35,48 +23,18 @@ jobs:
chmod 700 ~/.gnupg chmod 700 ~/.gnupg
chmod 600 ~/.gnupg/* chmod 600 ~/.gnupg/*
gpg-connect-agent reloadagent /bye gpg-connect-agent reloadagent /bye
- name: Set up Maven Central Repo
- name: 创建 Maven 设置文件 uses: actions/setup-java@v1
run: | with:
cat > settings.xml << EOF java-version: 1.8
<settings> server-id: sonatype-nexus-staging
<servers> server-username: ${{ secrets.OSSRH_USER }}
<server> server-password: ${{ secrets.OSSRH_PASSWORD }}
<id>ossrh</id> gpg-passphrase: ${{ secrets.GPG_PASSWORD }}
<username>${{ secrets.OSSRH_USER }}</username> - name: Publish to Maven Central Repo
<password>${{ secrets.OSSRH_PASSWORD }}</password> uses: samuelmeuli/action-maven-publish@v1
</server> with:
<!-- 备用服务器 ID以防某些插件使用不同的 ID --> gpg_private_key: ${{ secrets.GPG_SECRET }}
<server> gpg_passphrase: ${{ secrets.GPG_PASSWORD }}
<id>central</id> nexus_username: ${{ secrets.OSSRH_USER }}
<username>${{ secrets.OSSRH_USER }}</username> nexus_password: ${{ secrets.OSSRH_PASSWORD }}
<password>${{ secrets.OSSRH_PASSWORD }}</password>
</server>
<server>
<id>sonatype-nexus-staging</id>
<username>${{ secrets.OSSRH_USER }}</username>
<password>${{ secrets.OSSRH_PASSWORD }}</password>
</server>
</servers>
<profiles>
<profile>
<id>ossrh</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<gpg.executable>gpg</gpg.executable>
<gpg.passphrase>${{ secrets.GPG_PASSWORD }}</gpg.passphrase>
</properties>
</profile>
</profiles>
</settings>
EOF
- name: 构建并发布到 Maven Central
run: |
mvn clean deploy \
--batch-mode \
--settings settings.xml \
-Dgpg.passphrase="${{ secrets.GPG_PASSWORD }}" \
-DskipTests=true

View File

@@ -73,6 +73,12 @@
<goals> <goals>
<goal>sign</goal> <goal>sign</goal>
</goals> </goals>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution> </execution>
</executions> </executions>
</plugin> </plugin>