gnarf #1709
This file contains 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
# 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/github-pages-deploy-action@4.1.5 | |
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 |