[
  {
    "path": ".github/FUNDING.yml",
    "content": "# These are supported funding model platforms\n\ngithub: [qcastel]\n"
  },
  {
    "path": ".github/workflows/release.yml",
    "content": "on:\n  push:\n    branches:\n      - master\n\nname: Create Release\n\njobs:\n  build:\n    name: Create Release\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v2\n\n      - name: Bump version and push tag\n        id: tag_version\n        uses: mathieudutour/github-tag-action@v5\n        with:\n          github_token: ${{ secrets.GITHUB_TOKEN }}\n\n      - name: Create a GitHub release\n        uses: ncipollo/release-action@v1.9.0\n        with:\n          tag: ${{ steps.tag_version.outputs.new_tag }}\n          name: Release ${{ steps.tag_version.outputs.new_tag }}\n          body: ${{ steps.tag_version.outputs.changelog }}\n"
  },
  {
    "path": "Dockerfile",
    "content": "FROM qcastel/maven-release:0.0.44\n\nCOPY ./release-github-actions.sh /usr/local/bin\n"
  },
  {
    "path": "README.md",
    "content": "# github action maven release\n\nThe GitHub Action for Maven releases wraps the Maven CLI to enable Maven release.\nFor example, you can use this action for auto-incrementing your project version and release your java artifacts.\n\nThis github action is bot friendly: You can configure the credentials of a bot user, which would be used during the incremental commit.\nThe commits by the bot can also be signed, giving you the guaranty that only the bot can release in your repo. Additionally,\nthis give you a clean git history by highlighting nicely which commits where resulting from your CI.\n\n## Supporting this github action\n\nSupport this github action by staring this project. Surprisingly, it seems to be the only way for the github market place to highlight popular github actions.\n\n## Sample repository\n\nWe created a sample repository that will show you an example of how this github action can be used for releasing a Java application: \nhttps://github.com/qcastel/github-actions-maven-release-sample\n\n## Features\n\nObviously, this github actions uses maven release plugin. Although, we did add on top a few features that you may like.\n\nMaven release uses Git behind it, therefore there were a few features related in customising the git configuration:\n- Signing the commits (GPG) resulting from the maven release [[GPG](#setup-a-gpg-key)]\n- Authenticating to private repository using an SSH key [[SSH](#setup-with-ssh)]\n- Configuring the git username and email [[Bot](#customise-the-bot-name)]\n- Configuring the jdk version [[JDK](#jdk-version)]\n\nYou may want to configure a bit maven too. We added the following features:\n- Specify the maven project path. In other words, if your maven project is not at the root of your repo, you can configure a sub path. [[Custom project path](#customise-the-m2-folder-path)] \n- Configure private maven server repositories [[Private maven repo](#Setup-private-maven-server-repositories)]\n- Configure a docker registry [[Docker registry](#setup-a-docker-registry)]\n- Setup custom maven arguments and/or options to be used when calling maven commands [[Maven options](#maven-options)]\n- Configure a custom M2 folder [[Custom M2](#customise-the-m2-folder-path)]\n- Print the timestamp for every maven logs. Handy for troubleshooting performance issues in your CI. [[Log timestamp](#log-timestamp)]\n\nFor the maven releases, we got also some dedicated functionalities:\n- Skip the maven perform [[Skip perform](#skipping-perform)]\n- Roll back the maven perform if it failed to perform the release\n- Increment the major or minor version (by default, it's the patch version that is increased) [[Major Minor version](#increase-major-or-minor-version)]\n- customise the version format completly [[Customize version](#customize-version)]\n\n# Usage\n\n## Setup your pom.xml for maven release\n\nBefore you even begin setting up this github action, you would need to set up your pom.xml first to be ready for maven releases.\nWe recommend you to refer to the maven release plugin documentation for more details: https://maven.apache.org/maven-release/maven-release-plugin/\n\nNevertheless, we will give you some essential setups\n\n### Configure the SCM\n\nYou got two choices here:\n- Using SSH URL (Recommended)\n```xml\n    <scm>\n        <connection>scm:git:${project.scm.url}</connection>\n        <developerConnection>scm:git:${project.scm.url}</developerConnection>\n        <url>git@github.com:idhub-io/idhub-api.git</url>\n        <tag>HEAD</tag>\n    </scm>\n```\n- Using HTTPS URL\n```xml\n\t<scm>\n        <connection>scm:git:${project.scm.url}</connection>\n        <developerConnection>scm:git:${project.scm.url}</developerConnection>\n\t\t<url>https://github.com/YOUR_REPO.git</url>\n\t\t<tag>HEAD</tag>\n\t</scm>\n```\n\nIn the case of SSH, it will use the `ssh-private-key`  to authenticate with the upstream.\nIn the case of HTTPS, maven releases will use the `access-token` in this github actions to authenticate with the upstream.\n\nNote: SSH is more elegant and usually the easiest one to setup due to the large amount of documents online on this subject.\n\n### maven release plugin\n\nAdd the maven release plugin dependency to your project\n\n```xml\n    <plugin>\n        <artifactId>maven-release-plugin</artifactId>\n        <version>XXX</version>\n        <configuration>\n            <scmCommentPrefix>[ci skip]</scmCommentPrefix>\n        </configuration>\n    </plugin>\n```\n\nPersonally, I usually the prefix `[ci skip]` which allows me to skip more easily any commits generated by the bot from the CI.\n\n## Setup the maven release github actions\n\n### Choose your version of this github action\n\nIf it's your first time using a github action, I invite you having a quick read to the github official recommendations:\nhttps://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions\n\nIt's important you understand how the versioning work and the risk/compromise of using master/tags/commit hash\n\nIf you are adventurous and like to be always on top of this github action, you can use the reference *master* :\n\n```\n - name: Release\n      uses: qcastel/github-actions-maven-release@master\n      with:\n```\n\nIf you are more reserve, you can use a tag instead. You can find the list of the tags for this github action here:\n\nhttps://github.com/qcastel/github-actions-maven-release/tags\n\nTo use a tag:\n\n```\n - name: Release\n      uses: qcastel/github-actions-maven-release@TAG_NAME\n      with:\n```\n\nIf you are concerned about the security of this github action, you can also move to a commit hash:\n\n```\n - name: Release\n      uses: qcastel/github-actions-maven-release@COMMIT_HASH\n      with:\n```\n\n\n\n### Basic setup\nFor a simple repo with not much protection and private dependency, you can do:\n\n```yaml\n      env:\n       JAVA_HOME: /usr/lib/jvm/java-17-openjdk/\n      with:\n       ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}\n```\n\nYou will need to follow the `Setup with SSH` section to setup the `SSH_PRIVATE_KEY` accordingly.\n\n### Setup with SSH\n\nAlthough you may found better to use a SSH key instead. For this, generate an SSH key with the method of your choice, or use an existing one.\nPersonally, I like generating an SSH inside a temporary docker image and configure it as a deploy key in my repository:\n\n```bash\ndocker run -it qcastel/maven-release:latest  bash\n```\n\n```bash\nssh-keygen -b 2048 -t rsa -f /tmp/sshkey -q -N \"\"\nexport SSH_PRIVATE_KEY=$(base64 /tmp/sshkey)\nexport SSH_PUBLIC_KEY=$(cat /tmp/sshkey.pub)\necho -n \"Copy the following SSH private key and add it to your repo secrets under the name 'SSH_PRIVATE_KEY':\"\necho $SSH_PRIVATE_KEY\necho \"Copy the encoded SSH public key and add it as one of your repo deploy keys with write access:\"\necho $SSH_PUBLIC_KEY\n\nexit \n```\n\nCopy `SSH_PRIVATE_KEY` and add it as a new secret.\n![img/Add-ssh-secrets.png](img/Add-ssh-secrets.png?raw=true)\n\nCopy `SSH_PUBLIC_KEY` and add it as a new deployment key with write access.\n![img/add-deploy-key.png](img/add-deploy-key.png?raw=true)\n\nFinally, setup the github action with:\n\n```yaml\n        with:\n          ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}\n```\n\nIf you want to set up a passphrase for your key:\n\n```yaml\n        with:\n          ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}\n          ssh-passphrase: ${{ secrets.SSH_PASSPHRASE }}\n```\n\n#### SSH known hosts\n\nThe current github actions support by default the following known hosts:\n\n- `github.com`\n- `gitlab.com`\n- `bitbucket.org`\n\nAlthough you may want to additional one, using the following properties:\n\n```yaml\n        with:\n          ssh-extra-known-host: \"my-awesome-private-git-host.com\"\n```\n\nYou can also disable the default hosts (for example, if you are behind a corporate proxy) like so:\n```yaml\n        with:\n          ssh-ignore-default-hosts: true\n```\n\n### log Timestamp\n\nIt can be quite difficult to troubleshoot any performance issue on your CI, due to the lack of timestamp from maven by default.\nAn example of it particular handy, is when you private maven repository is having performance issue that is affecting your CI.\n\nWe added the timestamp by default, you don't need to do anything particular to enable this feature.\n\nThe logs should look like:\n\n```\n14:27:09,491 [INFO] Downloading from spring-snapshots: https://repo.spring.io/snapshot/io/projectreactor/reactor-bom/Dysprosium-SR13/reactor-bom-Dysprosium-SR13.pom\n``` \n \n### Maven options\n\n#### Adding maven arguments\n\nYou can add some maven arguments, which is handy for skipping tests:\n\n```yaml\n        with:\n            maven-args: \"-Dmaven.javadoc.skip=true -DskipTests -DskipITs -Ddockerfile.skip -DdockerCompose.skip\"\n```\n\n#### Adding maven options\n\nYou can add some maven options. At the difference of the maven arguments, those one are explicitly for the maven release plugin.\nSee https://maven.apache.org/maven-release/maven-release-plugin/prepare-mojo.html.\n\n```yaml\n        with:\n            maven-options: \"-DbranchName=hotfix\"\n```\n\n### JDK version\n\nThe default JDK version is JDK 21. Although you may want to compile your project with a specific JDK version. You will need to specify the JAVA_HOME variable with the according value.\nIf you need a specific jdk version that is not in the list, please raise an issue in this github action to request it.\n\n#### JDK 8\n\n```yaml\nenv:\n JAVA_HOME: /usr/lib/jvm/java-1.8-openjdk/\n```\n\n#### JDK 11\n\n```yaml\nenv:\n JAVA_HOME: /usr/lib/jvm/java-11-openjdk/\n```\n\n#### JDK 14\n\n```yaml\nenv:\n JAVA_HOME: /usr/lib/jvm/java-14-openjdk/\n```\n\n#### JDK 15\n\n```yaml\nenv:\n JAVA_HOME: /usr/lib/jvm/java-15-openjdk/\n```\n\n#### JDK 16\n\n```yaml\nenv:\n JAVA_HOME: /usr/lib/jvm/java-16-openjdk/\n```\n\n\n#### JDK 17\n\n```yaml\nenv:\n JAVA_HOME: /usr/lib/jvm/java-17-openjdk/\n```\n\n#### JDK 21\n\n```yaml\nenv:\n JAVA_HOME: /usr/lib/jvm/java-21-openjdk/\n```\n\n#### JDK 25\n\n```yaml\nenv:\n JAVA_HOME: /usr/lib/jvm/java-25-openjdk/\n```\n\n### Customise the bot name\n\nYou can simply customise the bot name as follows:\n\n\n```yaml\n        with:\n            git-release-bot-name: \"release-bot\"\n            git-release-bot-email: \"release-bot@example.com\"\n```\n\n### Customise the default branch\nYou may not want to release from your master branch, which is currently the default branch setup by this github action. You can customise the branch name you want to release on, here `release`, as follows:\n\n```yaml\n        with:\n            release-branch-name: \"release\"\n\n```\n\n### Skipping perform\nIf for a reason, you need to skip the maven release perfom, you can disable it as follow:\n\n```yaml\n        with:\n            skip-perform: true\n```\n\n\n### Increase major, minor or patch version\n\n#### For major version increment\n\n_1.0.0-SNAPSHOT -> 2.0.0-SNAPSHOT_\n\n```yaml\n        with:\n            version-major: true\n```\n\n#### For minor version increment\n\n_1.0.0-SNAPSHOT -> 1.2.0-SNAPSHOT_\n\n```yaml\n        with:\n            version-minor: true\n```\n\n#### For patch version increment\n\nAs the patch version is the default version number increased, you don't need to specify any additional properties.\n\nAlthough if you prefer to be explicit, you can use the following option:\n\n_1.0.0-SNAPSHOT -> 1.0.1-SNAPSHOT_\n\n```yaml\n        with:\n            version-patch: true\n```\n\n### Customize version\n\n#### development version\n\nYou may want to fully customize the development version number. This option will allow you to fully take control on the version number format.\n\nFor Example, you could decide to only have a 2 part version number like `0.2-SNAPSHOT`.\n\n```yaml\n        with:\n            maven-development-version-number: ${parsedVersion.majorVersion}.\\${parsedVersion.nextMinorVersion}-SNAPSHOT\n```\n\n### Release version\n\nYou may want to fully customize the release version number. This option will allow you to fully take control on the version number format.\n\nFor Example, you could decide to only have a trailing 0 for releases like `0.2.0`.\n\n```yaml\n        with:\n            maven-release-version-number: ${parsedVersion.majorVersion}.\\${parsedVersion.minorVersion}.0\n```\n\n\n#### Customise the M2 folder path\n\nIt's quite common for setting up a caching of your dependencies, that you will be interested to customise the .m2 localisation folder.\n\n```yaml\n        with:\n            m2-home-folder: '/your-custom-path/.m2'\n```\n\n\n### Setup a GPG key\nIf you want to set up a GPG key, you can do it by injecting your key via the secrets:\n\nNote: `GITHUB_GPG_KEY` needs to be base64 encoded.\nif you haven't setup a GPG key yet, see next section.\n\n```yaml\n      with:\n        gpg-enabled: \"true\"\n        gpg-key-id: ${{ secrets.GITHUB_GPG_KEY_ID }}\n        gpg-key: ${{ secrets.GITHUB_GPG_KEY }}\n```\n\nIn case you want to skip the GPG step, you can set `gpg-enabled: \"false\"` or if you prefer to have the same behaviour in your IDE, add this maven plugin in your `pom.xml` to skip GPG step in the release phase:\n\n```xml\n<plugin>\n    <groupId>org.apache.maven.plugins</groupId>\n    <artifactId>maven-gpg-plugin</artifactId>\n    <version>1.6</version>\n    <configuration>\n        <skip>true</skip>\n    </configuration>\n</plugin>\n```\n\n### Setup private maven server repositories\n\nIf you got a private maven repo to set up in the settings.xml, you can do:\nNote: we recommend putting those values in your repo secrets.\n\n```yaml\n      with:\n        maven-servers: ${{ secrets.MVN_REPO_SERVERS }}\n```\n\nGithub actions currently don't support arrays input format.\nThis is why we choose to request the secret `MVN_REPO_SERVERS` to be a JSON containing the servers definition. Example:\n\n```json\n[\n  {\n    \"id\": \"serverId1\",\n    \"username\": \"username\",\n    \"password\": \"password1\",\n    \"privateKey\": \"privatekey1\",\n    \"passphrase\": \"passphrase1\"\n  },\n  {\n    \"id\": \"serverId2\",\n    \"username\": \"username2\",\n    \"password\": \"password2\"\n  }\n]\n```\n\nYou will need to put the JSON in one line:\n```bash\nMVN_REPO_SERVERS='[{\"id\": \"serverId1\", \"username\": \"username\", \"password\": \"password1\", \"privateKey\": \"privatekey1\", \"passphrase\": \"passphrase1\"}, {\"id\": \"serverId2\", \"username\": \"username2\", \"password\": \"password2\"}]'\n```\n\n### Setup a docker registry\n\nIf you got a private maven repo to set up in the settings.xml, you can do:\nNote: we recommend putting those values in your repo secrets.\n\n```yaml\n      with:\n        docker-registry-id: your-docker-registry-id\n        docker-registry-username: ${{ secrets.DOCKER_REGISTRY_USERNAME }}\n        docker-registry-password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}\n```\n\nNote: For docker hub, this would look like:\n```yaml\n      with:\n        docker-registry-id: registry.hub.docker.com\n        docker-registry-username: ${{ secrets.DOCKER_HUB_USERNAME }}\n        docker-registry-password: ${{ secrets.DOCKER_HUB_PASSWORD }}\n```\n\n### Configure your maven project\n\nYou may also be in the case where you got more than one maven projects inside the repo. We added an option that will make the release job move to the according directly before running the release:\n\n```yaml\n    with:\n        maven-project-folder: \"sub-folder/\"\n```\n\n\n## Setup the bot gpg key\n\nSetting up a gpg key for your bot is a good security feature. This way, you can enforce sign commits in your repo,\neven for your release bot.\n\n![Screenshot-2019-11-28-at-20-47-06.png](https://i.postimg.cc/9F6cxpqm/Screenshot-2019-11-28-at-20-47-06.png)\n\n- Create dedicate github account for your bot and add him into your team for your git repo.\n- Create a new GPG key: https://help.github.com/en/github/authenticating-to-github/generating-a-new-gpg-key\n\nThis github action needs the key ID and the key base64 encoded.\n\n```yaml\n        with:\n            gpg-enabled: true\n            gpg-key-id: ${{ secrets.GPG_KEY_ID }}\n            gpg-key: ${{ secrets.GPG_KEY }}\n```\n\nIf you want to set up a passphrase:\n\n```yaml\n        with:\n            gpg-enabled: true\n            gpg-key-id: ${{ secrets.GPG_KEY_ID }}\n            gpg-key: ${{ secrets.GPG_KEY }}\n            gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }} \n```\n\n### Generate the key\n\nf you like how we created a SSH key pair, here is the same idea using a docker image to generate a GPG key:\n\n```bash\ndocker run -it qcastel/maven-release:latest  bash\n```\n\n```bash\ncat >genkey-batch <<EOF\n %no-protection\n Key-Type: default\n Subkey-Type: default\n Name-Real: bot\n Name-Email: bot@idhub.io\n Expire-Date: 0\nEOF\ngpg --batch --gen-key genkey-batch\n```\n\nNote: Don't exit the docker container as we are not done yet.\n\n\n### Get the KID\n\nYou can get the key ID doing the following:\n\n```bash\ngpg --list-secret-keys --keyid-format LONG\n\nsec   rsa2048/3EFC3104C0088B08 2019-11-28 [SC]\n      CBFD9020DAC388A77C68385C3EFC3104C0088B08\nuid                 [ultimate] bot-openbanking4-dev (it's the bot openbanking4.dev key) <bot@openbanking4.dev>\nssb   rsa2048/7D1523C9952204C1 2019-11-28 [E]\n\n```\nThe key ID for my bot is 3EFC3104C0088B08. Add this value into your github secret for this repo, under `GPG_KEY_ID`\nPS: the key id is not really a secret but we found more elegant to store it there than in plain text in the github action yml\n\n### Get the GPG public and private key\n\nNow we need the raw key and base64 encode\n```bash\n\necho 'Public key to add in your bot github account:'\ngpg --armor --export FFD651809B1889DF\necho 'Private key to add to the CI secrets under GITHUB_GPG_KEY:'\ngpg --export-secret-keys --armor FFD651809B1889DF | base64\n\nexit\n```\n\nCopy the public key and import it to the bot account as a GPG key.\nCopy the private key and add it in your github repo secrets under `GPG_KEY`.\n\n\n# License\nThe Dockerfile and associated scripts and documentation in this project are release under the MIT License.\n\n"
  },
  {
    "path": "action.yml",
    "content": "# action.yml\nname: 'Java Maven release'\nauthor: https://github.com/qcastel\ndescription: 'Release your Java application and publish artifacts'\nbranding:\n  color: gray-dark\n  icon: aperture\ninputs:\n  release-branch-name:\n    description: 'Filter the branch to execute the release on'\n    required: false\n    default: 'master'\n  gpg-enabled: \n    description: 'Enable gpg signing'\n    required: false\n    default: false\n  gpg-key-id: \n    description: 'The GPG key ID'\n    required: false\n  gpg-key: \n    description: 'The GPG key'\n    required: false\n  gpg-passphrase:\n    description: 'The GPG passphrase'\n    required: false\n\n  ssh-private-key:\n    description: 'The SSH private key used during the maven release git commit'\n    required: false\n  ssh-passphrase:\n    description: 'The SSH passphrase'\n    required: false\n  ssh-extra-known-host:\n    description: 'Additional SSH known host'\n    required: false\n  ssh-ignore-default-hosts:\n    description: 'Do not add the default SSH known hosts'\n    required: false\n\n  git-release-bot-name:\n    description: 'The git user name for committing the release'\n    required: false\n    default: 'release-bot'\n  git-release-bot-email:\n    description: 'The git user email for committing the release'\n    required: false\n    default: 'release-bot@github.com'\n  git-skip-sanity-check:\n    description: 'Skip the git fetch and reset executed for safety by this action'\n    required: false\n    default: 'false'\n\n\n  maven-repo-server-id:\n    description: '!!DEPRECATED: Use maven-servers instead!! Maven server repository id to push the artifacts to'\n    required: false\n    default: ''\n  maven-repo-server-username:\n    description: '!!DEPRECATED: Use maven-servers instead!! Maven server repository username'\n    required: false\n    default: ''\n  maven-repo-server-password:\n    description: '!!DEPRECATED: Use maven-servers instead!! Maven server repository password'\n    required: false\n    default: ''\n  maven-servers:\n    description: 'The maven server repositories, in a JSON format. Example: [{\"id\": \"serverId1\", \"username\": \"username\", \"password\": \"password1\", \"privateKey\": \"privatekey1\", \"passphrase\": \"passphrase1\"}, {\"id\": \"serverId2\", \"username\": \"username2\", \"password\": \"password2\"}]'\n    required: false\n    default: '[]'\n  maven-args:\n    description: 'The maven arguments for the release'\n    required: false\n    default: ''\n  maven-project-folder:\n    description: 'You may have more than one maven projects inside the repo. This option allows you to specify the folder for which you want to trigger the release'\n    required: false\n    default: './'\n  maven-options:\n    description: 'The maven options for the release'\n    required: false\n    default: ''\n  maven-development-version-number:\n    description: 'If define, this option allows you to define a custom development version number, like ${parsedVersion.majorVersion}.${parsedVersion.nextMinorVersion}-SNAPSHOT'\n    required: false\n    default: ''\n  maven-release-version-number:\n    description: 'If define, this option allows you to define a custom release version number, like ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.0'\n    required: false\n    default: ''\n\n  docker-registry-id:\n    description: 'The ID of your registry. For example, for docker hub, it is `registry.hub.docker.com`'\n    required: true\n    default: 'fake'\n  docker-registry-username:\n    description: 'The username for your docker registry'\n    required: true\n    default: 'fake'\n  docker-registry-password:\n    description: 'The password for your docker registry'\n    required: true\n    default: 'fake'\n\n  skip-perform:\n    description: 'Skip maven release perform'\n    required: false\n    default: false\n\n  version-major:\n    description: 'Increment the major version number'\n    required: false\n    default: false\n  version-minor:\n    description: 'Increment the minor version number'\n    required: false\n    default: false\n  version-patch:\n    description: 'Increment the patch version number <- By default, we will increase the patch version'\n    required: false\n    default: false\n\n  m2-home-folder:\n    description: 'M2 home folder'\n    required: false\n    default: '/root/.m2'\n\n\n  access-token:\n    description: 'Github access token. https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line'\n    required: false\n\nruns:\n  using: 'docker'\n  image: 'Dockerfile'\n  args: \n    - release-github-actions.sh\n  env:\n    GPG_ENABLED: ${{ inputs.gpg-enabled }}\n    GPG_KEY_ID: ${{ inputs.gpg-key-id }}\n    GPG_KEY: ${{ inputs.gpg-key }}\n    GPG_PASSPHRASE: ${{ inputs.gpg-passphrase }}\n\n    SSH_PRIVATE_KEY: ${{ inputs.ssh-private-key }}\n    SSH_ROOT_FOLDER: /root/.ssh\n    SSH_PASSPHRASE: ${{ inputs.ssh-passphrase }}\n    SSH_EXTRA_KNOWN_HOST: ${{ inputs.ssh-extra-known-host }}\n    SSH_IGNORE_DEFAULT_HOSTS: ${{ inputs.ssh-ignore-default-hosts }}\n\n    MAVEN_REPO_SERVER_ID: ${{ inputs.maven-repo-server-id }}\n    MAVEN_REPO_SERVER_USERNAME: ${{ inputs.maven-repo-server-username }}\n    MAVEN_REPO_SERVER_PASSWORD: ${{ inputs.maven-repo-server-password }}\n    MAVEN_SERVERS: ${{ inputs.maven-servers }}\n    MAVEN_PROJECT_FOLDER: ${{ inputs.maven-project-folder }}\n    MAVEN_ARGS: ${{ inputs.maven-args }}\n    MAVEN_OPTION: ${{ inputs.maven-options}}\n    MAVEN_DEVELOPMENT_VERSION_NUMBER: ${{ inputs.maven-development-version-number}}\n    MAVEN_RELEASE_VERSION_NUMBER: ${{ inputs.maven-release-version-number}}\n\n    DOCKER_REGISTRY_ID: ${{ inputs.docker-registry-id }}\n    DOCKER_REGISTRY_USERNAME: ${{ inputs.docker-registry-username }}\n    DOCKER_REGISTRY_PASSWORD: ${{ inputs.docker-registry-password }}\n\n    M2_HOME_FOLDER: ${{ inputs.m2-home-folder}}\n\n    GIT_RELEASE_BOT_NAME: ${{ inputs.git-release-bot-name }}\n    GIT_RELEASE_BOT_EMAIL: ${{ inputs.git-release-bot-email }}\n    SKIP_GIT_SANITY_CHECK: ${{ inputs.git-skip-sanity-check }}\n\n    SKIP_PERFORM: ${{ inputs.skip-perform }}\n\n    GITREPO_ACCESS_TOKEN: ${{ inputs.access-token }}\n\n    VERSION_MAJOR: ${{ inputs.version-major }}\n    VERSION_MINOR: ${{ inputs.version-minor }}\n    VERSION_PATCH: ${{ inputs.version-patch }}\n\n    RELEASE_BRANCH_NAME: ${{ inputs.release-branch-name }}\n"
  },
  {
    "path": "release-github-actions.sh",
    "content": "#!/usr/bin/env bash\n\nexport CI_COMMIT_SHA=\"${GITHUB_SHA}\"\nexport CI_COMMIT_REF_NAME=\"${GITHUB_REF}\"\n\nrelease.sh"
  }
]