Bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.6 to 3.2.7 in /JavaCryptographicArchitecture #30
Workflow file for this run
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
name: JavaCryptographicArchitecture version handling | |
on: | |
pull_request: | |
types: | |
- closed | |
branches: | |
- master | |
paths: | |
- JavaCryptographicArchitecture/** | |
jobs: | |
jca-version-update: | |
# This job 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 | |
major_pattern: "(MAJOR-JCA)" | |
# Same as above except indicating a minor change | |
minor_pattern: "(MINOR-JCA)" | |
# A string to determine the format of the version output | |
version_format: "${major}.${minor}.${patch}" | |
# Run the version update only, if there are changes in the JavaCryptographicArchitecture directory | |
change_path: "JavaCryptographicArchitecture" | |
# Consider only tags/versions, which end with 'jca' | |
namespace: "jca" | |
# Check, whether there is an existing branch "jca_<version>" or an open PR "jca_<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/jca_${{ 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 == "jca_${{ steps.versioning.outputs.version }}")) | |
| length | |
') >> $GITHUB_ENV | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# If the branch "jca_<version>" does not exist, create the branch and update the version in all files | |
- name: Create branch and update JavaCryptographicArchitecture 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 jca_${{ steps.versioning.outputs.version }} | |
mvn -f JavaCryptographicArchitecture 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 JavaCryptographicArchitecture version to ${{ steps.versioning.outputs.version }}" | |
git push origin jca_${{ steps.versioning.outputs.version }} | |
# If a PR "jca_<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 jca_${{ steps.versioning.outputs.version }} -t "Update JavaCryptographicArchitecture 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 }} | |
jca-version-release: | |
# This job runs only on merged PRs, which were opened by the version-update job and have "JavaCryptographicArchitecture version" in the title | |
if: ${{ github.event.pull_request.merged == true && github.event.pull_request.user.login == 'github-actions[bot]' && contains(github.event.pull_request.title, 'JavaCryptographicArchitecture version') }} | |
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 | |
major_pattern: "(MAJOR-JCA)" | |
# Same as above except indicating a minor change | |
minor_pattern: "(MINOR-JCA)" | |
# A string to determine the format of the version output | |
version_format: "${major}.${minor}.${patch}" | |
# Run the version update only, if there are changes in the JavaCryptographicArchitecture directory | |
change_path: "JavaCryptographicArchitecture" | |
# Consider only tags/versions, which end with 'jca' | |
namespace: "jca" | |
# Create a tag with the newest version to prepare a release | |
- name: Create tag for new JavaCryptographicArchitecture 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 }}-jca -m "JavaCryptographicArchitecture version ${{ steps.versioning.outputs.version }}" | |
git push origin ${{ steps.versioning.outputs.version }}-jca |