Skip to content

Commit a2820a5

Browse files
Create maven-publish.yml
1 parent 8be68a8 commit a2820a5

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Deploy Artifact to Maven Repository
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
deploy:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Checkout code
13+
uses: actions/checkout@v3
14+
15+
- name: Set up JDK
16+
uses: actions/setup-java@v3
17+
with:
18+
distribution: 'temurin'
19+
java-version: '21'
20+
cache: 'maven'
21+
22+
- name: Build plugin
23+
run: mvn clean package -DskipTests
24+
25+
- name: Extract Maven coordinates
26+
id: meta
27+
run: |
28+
echo "groupId=$(mvn help:evaluate -Dexpression=project.groupId -q -DforceStdout)" >> $GITHUB_OUTPUT
29+
echo "artifactId=$(mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout)" >> $GITHUB_OUTPUT
30+
echo "version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_OUTPUT
31+
32+
- name: Set up SSH
33+
run: |
34+
mkdir -p ~/.ssh
35+
echo "${{ secrets.MVN_REPO_SSH_KEY }}" > ~/.ssh/id_rsa
36+
chmod 600 ~/.ssh/id_rsa
37+
ssh-keyscan -H ${{ secrets.MVN_REPO_SSH_HOST }} >> ~/.ssh/known_hosts
38+
39+
- name: Upload artifact to VPS
40+
run: |
41+
GROUP_PATH=$(echo "${{ steps.meta.outputs.groupId }}" | sed 's/\./\//g')
42+
ARTIFACT_ID=${{ steps.meta.outputs.artifactId }}
43+
VERSION=${{ steps.meta.outputs.version }}
44+
REMOTE_DIR="${{ secrets.REMOTE_MAVEN_PATH }}/$GROUP_PATH/$ARTIFACT_ID/$VERSION"
45+
46+
echo "Creating remote directory: $REMOTE_DIR"
47+
ssh ${{ secrets.MVN_REPO_SSH_USER }}@${{ secrets.MVN_REPO_SSH_HOST }} "mkdir -p $REMOTE_DIR"
48+
49+
echo "Uploading JAR and POM"
50+
scp target/$ARTIFACT_ID-$VERSION.jar ${{ secrets.MVN_REPO_SSH_USER }}@${{ secrets.MVN_REPO_SSH_HOST }}:$REMOTE_DIR/
51+
scp pom.xml ${{ secrets.MVN_REPO_SSH_USER }}@${{ secrets.MVN_REPO_SSH_HOST }}:$REMOTE_DIR/$ARTIFACT_ID-$VERSION.pom

0 commit comments

Comments
 (0)