Skip to content

chore: ⬆️ update deps versions (#29) #85

chore: ⬆️ update deps versions (#29)

chore: ⬆️ update deps versions (#29) #85

name: Build and Deploy
on:
push:
branches: [main]
pull_request:
branches: [main]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
permissions:
contents: write
pages: write
id-token: write
jobs:
check:
runs-on: ubuntu-latest
outputs:
status: ${{ steps.check.outputs.status }}
steps:
- uses: actions/checkout@v3
- id: changes
uses: dorny/paths-filter@v2
with:
filters: |
production:
- 'src/**'
- 'pom.xml'
- id: check
name: Check production files changes
run: |
status="skip"
if [ "${{ steps.changes.outputs.production }}" == "true" ]; then
status="deploy"
fi
echo "status=$status" >> $GITHUB_OUTPUT
publish:
runs-on: ubuntu-latest
needs: check
if: "needs.check.outputs.status == 'deploy' && !contains(github.event.head_commit.message, 'ci skip')"
steps:
- uses: actions/checkout@v3
with:
ssh-key: ${{ secrets.ACTION_BOT_SECRET_KEY }}
- name: Set up java
uses: actions/setup-java@v3
with:
java-version: 19
distribution: adopt
cache: maven
server-id: ossrh
server-username: OSS_SONATYPE_USERNAME
server-password: OSS_SONATYPE_PASSWORD
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE
- name: Create maven release version
if: ${{ github.event_name == 'push' }}
run: mvn -f pom.xml -q build-helper:parse-version versions:set -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion} versions:commit
- name: Deploy
run: mvn --batch-mode --update-snapshots deploy -P release
env:
OSS_SONATYPE_USERNAME: ${{ secrets.OSS_SONATYPE_USERNAME }}
OSS_SONATYPE_PASSWORD: ${{ secrets.OSS_SONATYPE_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
- uses: actions/upload-artifact@v3
with:
name: my-artifact
path: |
target/plantuml-builder-*.jar
target/plantuml-builder-*.pom
retention-days: 1
- name: Create and commit next dev version
if: ${{ github.event_name == 'push' }}
run: mvn -f pom.xml -q build-helper:parse-version versions:set -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.nextMinorVersion}-SNAPSHOT versions:commit
- uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: Post release - ci skip
tests_java:
needs:
- publish
- check
if: "needs.check.outputs.status == 'deploy' && github.event_name == 'pull_request' && !contains(github.event.head_commit.message, 'ci skip')"
runs-on: ubuntu-latest
strategy:
matrix:
version: [11, 15, 17]
steps:
- uses: actions/checkout@v3
- name: Set up java
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.version }}
distribution: adopt
- name: Install plantuml-builder artifact locally
run: |
ARTIFACT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
ARTIFACT_PATH=~/.m2/repository/ch/ifocusit/plantuml-builder/$ARTIFACT_VERSION/
echo ::set-env name=ARTIFACT_PATH::$ARTIFACT_PATH
echo ::set-env name=PLANTUML_BUILDER_VERSION::$ARTIFACT_VERSION
- uses: actions/download-artifact@v3
with:
name: my-artifact
path: ${{ env.ARTIFACT_PATH }}
- name: Test ${{ matrix.version }}
working-directory: ./src/it/example-java-x
run: |
sed -i -e "s/\${env.PLANTUML_BUILDER_VERSION}/${{ env.PLANTUML_BUILDER_VERSION }}/g" pom.xml
mvn --batch-mode --update-snapshots verify
env:
JAVA_VERSION: ${{ matrix.version }}
PLANTUML_BUILDER_VERSION: ${{ env.PLANTUML_BUILDER_VERSION }}