Release 1.1.1 #8
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: Deploy to Maven Repository | |
| on: | |
| release: | |
| types: [published] | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v3 | |
| - name: Set up JDK | |
| uses: actions/setup-java@v3 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '21' | |
| cache: 'maven' | |
| - name: Build submodules | |
| run: | | |
| for module in netwatchz-spigot netwatchz-paper netwatchz-velocity; do | |
| echo "Building $module..." | |
| mvn -pl $module -am clean package -DskipTests | |
| done | |
| - name: Set up SSH | |
| run: | | |
| if [ -z "${{ secrets.MVN_REPO_SSH_KEY }}" ]; then | |
| echo "Error: MVN_REPO_SSH_KEY is not set" | |
| exit 1 | |
| fi | |
| if [ -z "${{ secrets.MVN_REPO_SSH_HOST }}" ]; then | |
| echo "Error: MVN_REPO_SSH_HOST is not set" | |
| exit 1 | |
| fi | |
| mkdir -p ~/.ssh | |
| echo "${{ secrets.MVN_REPO_SSH_KEY }}" > ~/.ssh/id_rsa | |
| chmod 600 ~/.ssh/id_rsa | |
| ssh-keyscan -H ${{ secrets.MVN_REPO_SSH_HOST }} >> ~/.ssh/known_hosts | |
| - name: Check if versions already exist and upload | |
| run: | | |
| for module in netwatchz-spigot netwatchz-paper netwatchz-velocity; do | |
| echo "Processing $module..." | |
| cd $module | |
| GROUP_ID=$(mvn help:evaluate -Dexpression=project.groupId -q -DforceStdout) | |
| ARTIFACT_ID=$(mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout) | |
| VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) | |
| cd .. | |
| GROUP_PATH=$(echo "$GROUP_ID" | sed 's/\./\//g') | |
| REMOTE_DIR="${{ secrets.REMOTE_MAVEN_PATH }}/$GROUP_PATH/$ARTIFACT_ID/$VERSION" | |
| REMOTE_JAR="$REMOTE_DIR/$ARTIFACT_ID-$VERSION.jar" | |
| echo "Checking if $REMOTE_JAR exists..." | |
| if ssh ${{ secrets.MVN_REPO_SSH_USER }}@${{ secrets.MVN_REPO_SSH_HOST }} "[ -f $REMOTE_JAR ]"; then | |
| echo "Version $VERSION of $ARTIFACT_ID already exists. Exiting." | |
| exit 1 | |
| fi | |
| # Prepare checksums | |
| mkdir -p checksums | |
| cp $module/target/$ARTIFACT_ID-$VERSION.jar checksums/ | |
| cp $module/pom.xml checksums/$ARTIFACT_ID-$VERSION.pom | |
| cd checksums | |
| for file in *.{jar,pom}; do | |
| sha1sum "$file" | awk '{print $1}' > "$file.sha1" | |
| md5sum "$file" | awk '{print $1}' > "$file.md5" | |
| done | |
| # Upload artifacts | |
| ssh ${{ secrets.MVN_REPO_SSH_USER }}@${{ secrets.MVN_REPO_SSH_HOST }} "mkdir -p $REMOTE_DIR" | |
| scp * ${{ secrets.MVN_REPO_SSH_USER }}@${{ secrets.MVN_REPO_SSH_HOST }}:$REMOTE_DIR/ | |
| cd .. | |
| rm -rf checksums | |
| done |