name: Publish Maven Package to GitHub Packages
permissions:
contents: read
packages: write
on:
push:
branches:
- main
paths:
- 'pom.xml'
- 'src/**'
- '.github/workflows/maven.yml'
jobs:
build-and-publish:
runs-on: ubuntu-latest
steps:
# 1) Checkout code
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
# 2) Set up Java 11
- name: Setup Java 11
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '11'
cache: 'maven'
# 3) Build & Test
- name: Build & Test
run: mvn --batch-mode clean verify
# 4) Configure Maven settings and deploy to GitHub Packages
- name: Publish to GitHub Packages (Maven)
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
mkdir -p ~/.m2
cat <<EOF > ~/.m2/settings.xml
<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>github</id>
<username>${{ github.actor }}</username>
<password>${{ secrets.GITHUB_TOKEN }}</password>
</server>
</servers>
</settings>
EOF
mvn --batch-mode deploy -DskipTests --settings ~/.m2/settings.xml