Skip to content

Fix workflow

Fix workflow #1693

Workflow file for this run

# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Soot CI
on:
push:
pull_request:
jobs:
StyleAndLicense:
name: Check style´and license conformity
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Use Java 8
uses: actions/setup-java@v1
with:
java-version: '8'
- name: Stylecheck
if: always()
run: |
mvn -B --no-transfer-progress clean checkstyle:check -Dcheckstyle.failOnViolation=true
- name: Licensecheck
if: always()
run: |
mvn -B --no-transfer-progress clean license:check-file-header -Dlicence-check.failOnMissingHeader=true
BuildAndTest:
name: Build and Test with java ${{ matrix.java_version }}
runs-on: ubuntu-latest
strategy:
matrix:
java_version: ['11', '17', '21']
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Use Java ${{ matrix.java_version }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java_version }}
- name: Build and test Java ${{ matrix.java_version }}
run: |
mvn -B --no-transfer-progress clean test -PJava${{ matrix.java_version }}
DeployArtifacts:
name: Deploy artifacts to Maven Central
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/umbrella'
needs: [BuildAndTest]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Use Java 8
uses: actions/setup-java@v1
with:
java-version: '8'
- name: Deploy artifacts
uses: samuelmeuli/action-maven-publish@v1
with:
gpg_private_key: ${{ secrets.gpg_private_key }}
gpg_passphrase: ${{ secrets.gpg_passphrase }}
nexus_username: ${{ secrets.nexus_username }}
nexus_password: ${{ secrets.nexus_password }}
maven_args: "-DskipTests -Dcheckstyle.failOnViolation=true"
# has to happen in same job, so that the documention was already created (would require another checkout and maven run otherwise)
- name: Get Version
id: version
run: echo ::set-output name=version::$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
- name: Organize documentation files for upload
shell: bash
env:
docdir: ./build/docs
run: |
export releasedir=${docdir}/${{ steps.version.outputs.version }} # env variables cannot contain other env variables
mkdir -p ${releasedir}/jdoc
unzip ./target/sootclasses-trunk-javadoc.jar -d ${releasedir}/jdoc/
mkdir -p ${releasedir}/options
cp ./doc/soot_options.html ${releasedir}/options/
cp ./doc/soot_options.css ${releasedir}/options/
cp ./doc/index.html ${docdir}/
- name: Deploy JavaDoc to GH pages
uses: JamesIves/[email protected]
with:
branch: gh-pages # The branch the action should deploy to.
folder: build/ # The folder the action should deploy.
clean: false # Do not remove existing files in gh-pages