diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 42e4e1204..fb37f2c39 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -15,7 +15,7 @@ jobs: with: distribution: 'adopt' java-package: 'jdk' - java-version: '8' + java-version: '11' server-id: 'ossrh' # must match the serverId configured for the nexus-staging-maven-plugin server-username: OSSRH_USERNAME # Env var that holds your OSSRH user name server-password: OSSRH_PASSWORD # Env var that holds your OSSRH user pw diff --git a/.github/workflows/main_build.yml b/.github/workflows/main_build.yml index c14e3d4bf..e5adb64a6 100644 --- a/.github/workflows/main_build.yml +++ b/.github/workflows/main_build.yml @@ -12,17 +12,17 @@ jobs: name: Project build in ${{ matrix.os }} steps: - name: Checkout source code - uses: actions/checkout@v2 + uses: actions/checkout@v3 # Sets up Java version - name: Set up Java - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: distribution: 'adopt' java-package: jdk - java-version: '8' + java-version: '11' # Sets up Maven version - name: Set up Maven - uses: stCarolas/setup-maven@v4.2 + uses: stCarolas/setup-maven@v4.5 with: maven-version: 3.6.3 # Restores Maven dependecies diff --git a/.github/workflows/version.yml b/.github/workflows/version.yml new file mode 100644 index 000000000..47e52e807 --- /dev/null +++ b/.github/workflows/version.yml @@ -0,0 +1,107 @@ +name: Version handling + +on: + pull_request: + types: + - closed + branches: + - master + +jobs: + version-update: + # This version does not run on self-opened PRs + if: ${{ github.event.pull_request.merged == true && github.event.pull_request.user.login != 'github-actions[bot]' }} + runs-on: ubuntu-latest + steps: + - name: Checkout source code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + # Sets up Java version + - name: Set up Java + uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-package: jdk + java-version: '11' + # Sets up Maven version + - name: Set up Maven + uses: stCarolas/setup-maven@v4.5 + with: + maven-version: 3.6.3 + # Semantic versioning + - name: Semantic versioning + id: versioning + uses: paulhatch/semantic-version@v5.1.0 + with: + tag_prefix: "" + # A string which, if present in a git commit, indicates that a change represents a + # major (breaking) change, supports regular expressions wrapped with '/' + major_pattern: "(MAJOR)" + # Same as above except indicating a minor change, supports regular expressions wrapped with '/' + minor_pattern: "(MINOR)" + # A string to determine the format of the version output + version_format: "${major}.${minor}.${patch}" + # Check, whether there is an existing branch "version_" -> "master" + # and store the results as environment variables + - name: Check if branch and PR exist + # The second command was copied from https://stackoverflow.com/questions/73812503/github-action-stop-the-action-if-pr-already-exists + run: | + echo VERSION_BRANCH_EXISTS=$(git ls-remote --heads origin refs/heads/version_${{ steps.versioning.outputs.version }} | wc -l) >> $GITHUB_ENV + echo PR_EXISTS=$(gh pr list \ + --repo "$GITHUB_REPOSITORY" \ + --json baseRefName,headRefName \ + --jq ' + map(select(.baseRefName == "master" and .headRefName == "version_${{ steps.versioning.outputs.version }}")) + | length + ') >> $GITHUB_ENV + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # If the branch "version_" does not exist, create the branch and update the version in all files + - name: Create branch and update CryptoAnalysis version + if: ${{ env.VERSION_BRANCH_EXISTS == '0' }} + run: | + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "github-actions[bot]" + git checkout -b version_${{ steps.versioning.outputs.version }} + mvn build-helper:parse-version versions:set -DnewVersion=\${{ steps.versioning.outputs.version }} versions:commit + git ls-files | grep 'pom.xml$' | xargs git add + git commit --allow-empty -am "Update CryptoAnalysis version to ${{ steps.versioning.outputs.version }}" + git push origin version_${{ steps.versioning.outputs.version }} + # If a PR "version_" -> "master" does not exist, create the PR + - name: Open pull request for version update + if: ${{ env.PR_EXISTS == '0' }} + run: | + gh pr create -B master -H version_${{ steps.versioning.outputs.version }} -t "Update CryptoAnalysis version to ${{ steps.versioning.outputs.version }}" -b "This PR was created by the version-update workflow. Please make sure to delete the branch after merging, otherwise future workflows might fail." + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + version-release: + # This job runs only on merged PRs, which were opened by the version-update job + if: ${{ github.event.pull_request.merged == true && github.event.pull_request.user.login == 'github-actions[bot]' }} + runs-on: ubuntu-latest + steps: + - name: Checkout source code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + # Semantic versioning + - name: Semantic versioning + id: versioning + uses: paulhatch/semantic-version@v5.1.0 + with: + tag_prefix: "" + # A string which, if present in a git commit, indicates that a change represents a + # major (breaking) change, supports regular expressions wrapped with '/' + major_pattern: "(MAJOR)" + # Same as above except indicating a minor change, supports regular expressions wrapped with '/' + minor_pattern: "(MINOR)" + # A string to determine the format of the version output + version_format: "${major}.${minor}.${patch}" + # Create a tag with the newest version to prepare a release + - name: Create tag for new version + run: | + git config --global user.email "${{ github.actor }}@users.noreply.github.com" + git config --global user.name "${{ github.actor }}" + git tag -a ${{ steps.versioning.outputs.version }} -m "CryptoAnalysis version ${{ steps.versioning.outputs.version }}" + git push origin ${{ steps.versioning.outputs.version }} \ No newline at end of file diff --git a/CryptoAnalysis-Android/pom.xml b/CryptoAnalysis-Android/pom.xml index 0d6c322b5..e2460b518 100644 --- a/CryptoAnalysis-Android/pom.xml +++ b/CryptoAnalysis-Android/pom.xml @@ -5,6 +5,31 @@ CryptoAnalysis-Android + CryptoAnalysis-Android + CogniCrypt_SAST: CrySL-to-Static Analysis Compiler + https://github.com/CROSSINGTUD/CryptoAnalysis + + + + Eclipse Public License - v2.0 + https://www.eclipse.org/legal/epl-2.0/ + + + + + + CogniCrypt + CogniCrypt + cognicrypt@eim.upb.de + + + + + scm:git:git@github.com:CROSSINGTUD/CryptoAnalysis.git + scm:git:ssh://github.com:CROSSINGTUD/CryptoAnalysis.git + https://github.com/CROSSINGTUD/CryptoAnalysis + + de.fraunhofer.iem CryptoAnalysis-Parent @@ -17,6 +42,15 @@ + + org.apache.maven.plugins + maven-compiler-plugin + 3.10.1 + + ${maven.compiler.source} + ${maven.compiler.target} + + maven-assembly-plugin diff --git a/CryptoAnalysis/pom.xml b/CryptoAnalysis/pom.xml index de87523db..e12fca988 100644 --- a/CryptoAnalysis/pom.xml +++ b/CryptoAnalysis/pom.xml @@ -4,6 +4,31 @@ 4.0.0 CryptoAnalysis + + CryptoAnalysis + CogniCrypt_SAST: CrySL-to-Static Analysis Compiler + https://github.com/CROSSINGTUD/CryptoAnalysis + + + + Eclipse Public License - v2.0 + https://www.eclipse.org/legal/epl-2.0/ + + + + + + CogniCrypt + CogniCrypt + cognicrypt@eim.upb.de + + + + + scm:git:git@github.com:CROSSINGTUD/CryptoAnalysis.git + scm:git:ssh://github.com:CROSSINGTUD/CryptoAnalysis.git + https://github.com/CROSSINGTUD/CryptoAnalysis + de.fraunhofer.iem @@ -174,6 +199,15 @@ build + + org.apache.maven.plugins + maven-compiler-plugin + 3.10.1 + + ${maven.compiler.source} + ${maven.compiler.target} + + maven-clean-plugin 3.3.2 diff --git a/pom.xml b/pom.xml index 6bd26441b..c90a87177 100644 --- a/pom.xml +++ b/pom.xml @@ -43,6 +43,8 @@ UTF-8 3.3.0 + 1.8 + 1.8 @@ -104,8 +106,8 @@ maven-compiler-plugin 3.11.0 - 1.8 - 1.8 + ${maven.compiler.source} + ${maven.compiler.target}