Skip to content

Commit

Permalink
Merge pull request #472 from CROSSINGTUD/versioning
Browse files Browse the repository at this point in the history
Add versioning workflow and add explicit metadata to child poms
  • Loading branch information
schlichtig authored Nov 17, 2023
2 parents 89d0e10 + 56a9d55 commit 4404db9
Show file tree
Hide file tree
Showing 6 changed files with 184 additions and 7 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/main_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
107 changes: 107 additions & 0 deletions .github/workflows/version.yml
Original file line number Diff line number Diff line change
@@ -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/[email protected]
with:
maven-version: 3.6.3
# Semantic versioning
- name: Semantic versioning
id: versioning
uses: paulhatch/[email protected]
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_<version" or an open PR "version_<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_<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_<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/[email protected]
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 }}
34 changes: 34 additions & 0 deletions CryptoAnalysis-Android/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,31 @@

<artifactId>CryptoAnalysis-Android</artifactId>

<name>CryptoAnalysis-Android</name>
<description>CogniCrypt_SAST: CrySL-to-Static Analysis Compiler</description>
<url>https://github.com/CROSSINGTUD/CryptoAnalysis</url>

<licenses>
<license>
<name>Eclipse Public License - v2.0</name>
<url>https://www.eclipse.org/legal/epl-2.0/</url>
</license>
</licenses>

<developers>
<developer>
<id>CogniCrypt</id>
<name>CogniCrypt</name>
<email>[email protected]</email>
</developer>
</developers>

<scm>
<connection>scm:git:[email protected]:CROSSINGTUD/CryptoAnalysis.git</connection>
<developerConnection>scm:git:ssh://github.com:CROSSINGTUD/CryptoAnalysis.git</developerConnection>
<url>https://github.com/CROSSINGTUD/CryptoAnalysis</url>
</scm>

<parent>
<groupId>de.fraunhofer.iem</groupId>
<artifactId>CryptoAnalysis-Parent</artifactId>
Expand All @@ -17,6 +42,15 @@
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
Expand Down
34 changes: 34 additions & 0 deletions CryptoAnalysis/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,31 @@
<modelVersion>4.0.0</modelVersion>

<artifactId>CryptoAnalysis</artifactId>

<name>CryptoAnalysis</name>
<description>CogniCrypt_SAST: CrySL-to-Static Analysis Compiler</description>
<url>https://github.com/CROSSINGTUD/CryptoAnalysis</url>

<licenses>
<license>
<name>Eclipse Public License - v2.0</name>
<url>https://www.eclipse.org/legal/epl-2.0/</url>
</license>
</licenses>

<developers>
<developer>
<id>CogniCrypt</id>
<name>CogniCrypt</name>
<email>[email protected]</email>
</developer>
</developers>

<scm>
<connection>scm:git:[email protected]:CROSSINGTUD/CryptoAnalysis.git</connection>
<developerConnection>scm:git:ssh://github.com:CROSSINGTUD/CryptoAnalysis.git</developerConnection>
<url>https://github.com/CROSSINGTUD/CryptoAnalysis</url>
</scm>

<parent>
<groupId>de.fraunhofer.iem</groupId>
Expand Down Expand Up @@ -174,6 +199,15 @@
<outputDirectory>build</outputDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.3.2</version>
Expand Down
6 changes: 4 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<versions.maven-jar-plugin>3.3.0</versions.maven-jar-plugin>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>

<profiles>
Expand Down Expand Up @@ -104,8 +106,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<!-- This plugin flattens the poms and removes not needed elements.
Expand Down

0 comments on commit 4404db9

Please sign in to comment.