Skip to content

Dexpler: Fix MethodHandle support #1951

Dexpler: Fix MethodHandle support

Dexpler: Fix MethodHandle support #1951

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: Set up Java
uses: actions/setup-java@v4
with:
distribution: adopt
java-package: jdk
java-version: 11
server-id: central # must match the serverId configured for the nexus-staging-maven-plugin
server-username: MAVEN_USERNAME # Env var that holds the central publisher user name
server-password: MAVEN_CENTRAL_TOKEN # Env var that holds the central publisher user token
gpg-private-key: ${{ secrets.gpg_private_key }} # Substituted with the value stored in the referenced secret
gpg-passphrase: MAVEN_GPG_PASSPHRASE # Env var that holds the key's passphrase
- name: Deploy Soot
run: mvn -B -U clean deploy -P deploy -DskipTests -Dcheckstyle.failOnViolation=true
env:
MAVEN_USERNAME: ${{ secrets.nexus_username }}
MAVEN_CENTRAL_TOKEN: ${{ secrets.nexus_password }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.gpg_passphrase }}
# 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