Skip to content

1.2 - Updating file dependency #28

1.2 - Updating file dependency

1.2 - Updating file dependency #28

Workflow file for this run

name: Package & Release Plugin
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
release:
types: [ created ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '21'
- name: Build with Maven
run: mvn clean package
- name: Upload all module artifacts
uses: actions/upload-artifact@v4
with:
name: Takion-artifacts
path: |
shaded/target/Takion-shaded-*.jar
plugin/target/Takion-*.jar
- name: Get Plugin Version
id: version
run: echo "VERSION=$(basename $(ls plugin/target/Takion-*.jar | grep -vE '(-sources|-javadoc).jar') .jar | sed 's/Takion-//')" >> $GITHUB_ENV
- name: Delete existing GitHub release (if exists)
run: |
RELEASE_ID=$(gh release view ${{ env.VERSION }} --json id -q '.id' || echo "")
if [ -n "$RELEASE_ID" ]; then
echo "Deleting existing release..."
gh release delete ${{ env.VERSION }} --yes
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Delete existing tag (if exists)
run: |
if git rev-parse "${{ env.VERSION }}" >/dev/null 2>&1; then
echo "Deleting existing tag..."
git tag -d ${{ env.VERSION }}
git push origin :refs/tags/${{ env.VERSION }}
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ env.VERSION }}
name: Release ${{ env.VERSION }}
files: |
shaded/target/Takion-shaded-${{ env.VERSION }}.jar
plugin/target/Takion-${{ env.VERSION }}.jar
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout Maven repository
uses: actions/checkout@v4
with:
repository: CroaBeast/repo
path: maven-repo
token: ${{ secrets.MAVEN_DEPLOY_TOKEN }}
- name: Configure Git
run: |
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
- name: Deploy shaded to Maven repository
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
ART="Takion-shaded-${{ env.VERSION }}"
ARTIFACT_ID="Takion-shaded"
mkdir -p maven-repo/me/croabeast/$ARTIFACT_ID/${{ env.VERSION }}
# Copy JAR, sources and javadoc if exist
cp shaded/target/$ART.jar maven-repo/me/croabeast/$ARTIFACT_ID/${{ env.VERSION }}/
cp shaded/target/$ART-sources.jar maven-repo/me/croabeast/$ARTIFACT_ID/${{ env.VERSION }}/
cp shaded/target/$ART-javadoc.jar maven-repo/me/croabeast/$ARTIFACT_ID/${{ env.VERSION }}/
# Create minimal POM
cat > maven-repo/me/croabeast/$ARTIFACT_ID/${{ env.VERSION }}/$ART.pom << EOF
<?xml version="1.0" encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>me.croabeast</groupId>
<artifactId>$ARTIFACT_ID</artifactId>
<version>${{ env.VERSION }}</version>
<packaging>jar</packaging>
</project>
EOF
# Update metadata
cat > maven-repo/me/croabeast/$ARTIFACT_ID/maven-metadata.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>me.croabeast</groupId>
<artifactId>$ARTIFACT_ID</artifactId>
<versioning>
<latest>${{ env.VERSION }}</latest>
<release>${{ env.VERSION }}</release>
<versions>
<version>${{ env.VERSION }}</version>
</versions>
<lastUpdated>$(date +%Y%m%d%H%M%S)</lastUpdated>
</versioning>
</metadata>
EOF
cd maven-repo
git add .
git commit -m "Deploy $ART"
git push
- name: Deploy plugin to Maven repository
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
ART="Takion-${{ env.VERSION }}"
ARTIFACT_ID="Takion"
mkdir -p maven-repo/me/croabeast/$ARTIFACT_ID/${{ env.VERSION }}
# Copy JAR, sources and javadoc if exist
cp plugin/target/$ART.jar maven-repo/me/croabeast/$ARTIFACT_ID/${{ env.VERSION }}/
cp plugin/target/$ART-sources.jar maven-repo/me/croabeast/$ARTIFACT_ID/${{ env.VERSION }}/
cp plugin/target/$ART-javadoc.jar maven-repo/me/croabeast/$ARTIFACT_ID/${{ env.VERSION }}/
# Create minimal POM
cat > maven-repo/me/croabeast/$ARTIFACT_ID/${{ env.VERSION }}/$ART.pom << EOF
<?xml version="1.0" encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>me.croabeast</groupId>
<artifactId>$ARTIFACT_ID</artifactId>
<version>${{ env.VERSION }}</version>
<packaging>jar</packaging>
</project>
EOF
# Update metadata
cat > maven-repo/me/croabeast/$ARTIFACT_ID/maven-metadata.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>me.croabeast</groupId>
<artifactId>$ARTIFACT_ID</artifactId>
<versioning>
<latest>${{ env.VERSION }}</latest>
<release>${{ env.VERSION }}</release>
<versions>
<version>${{ env.VERSION }}</version>
</versions>
<lastUpdated>$(date +%Y%m%d%H%M%S)</lastUpdated>
</versioning>
</metadata>
EOF
cd maven-repo
git add .
git commit -m "Deploy $ART"
git push