Skip to content

Release

Release #40

Workflow file for this run

name: Release
on:
workflow_dispatch:
inputs:
previous_released_version:
description: "The value of the previous version released. Used only to generate the Changelog"
required: false
default: "Ex: 6.2.0.Final"
type: string
release_version:
description: "The value of the version to be released"
required: true
default: "Ex: 6.3.0.Final"
type: string
next_development_version:
description: "The value of the next version to be developed"
required: true
default: "Ex: 6.4.0-SNAPSHOT"
type: string
branch:
description: "The branch to use when releasing"
required: true
default: "master"
type: string
jobs:
windup:
uses: ./.github/workflows/release-template.yml
with:
owner: windup
repository: windup
previous_released_version: ${{ github.event.inputs.previous_released_version }}
release_version: ${{ github.event.inputs.release_version }}
next_development_version: ${{ github.event.inputs.next_development_version }}
branch: ${{ github.event.inputs.branch }}
jreleaser_file: jreleaser/basic.yml
cache_key: windup
cache_key_to_restore: windup
secrets:
GITHUB_PAT: ${{ secrets.GH_PAT }}
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
windup-rulesets:
needs: [ windup ]
uses: ./.github/workflows/release-template.yml
with:
owner: windup
repository: windup-rulesets
previous_released_version: ${{ github.event.inputs.previous_released_version }}
release_version: ${{ github.event.inputs.release_version }}
next_development_version: ${{ github.event.inputs.next_development_version }}
branch: ${{ github.event.inputs.branch }}
jreleaser_file: jreleaser/basic.yml
cache_key: windup-rulesets
cache_key_to_restore: windup
run_before: |
setNextVersion_windupRulesets
run_after: |
setNextVersion_windupRulesets
secrets:
GITHUB_PAT: ${{ secrets.GH_PAT }}
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
windup-distribution:
needs: [ windup-rulesets ]
uses: ./.github/workflows/release-template.yml
with:
owner: windup
repository: windup-distribution
previous_released_version: ${{ github.event.inputs.previous_released_version }}
release_version: ${{ github.event.inputs.release_version }}
next_development_version: ${{ github.event.inputs.next_development_version }}
branch: ${{ github.event.inputs.branch }}
jreleaser_file: jreleaser/basic.yml
cache_key: windup-distribution
cache_key_to_restore: windup-rulesets
run_before: |
setNextVersion_windupDistribution
run_after: |
setNextVersion_windupDistribution
secrets:
GITHUB_PAT: ${{ secrets.GH_PAT }}
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
windup-web:
needs: [ windup-distribution ]
uses: ./.github/workflows/release-template.yml
with:
owner: windup
repository: windup-web
previous_released_version: ${{ github.event.inputs.previous_released_version }}
release_version: ${{ github.event.inputs.release_version }}
next_development_version: ${{ github.event.inputs.next_development_version }}
branch: ${{ github.event.inputs.branch }}
jreleaser_file: jreleaser/basic.yml
cache_key: windup-web
cache_key_to_restore: windup-distribution
run_before: |
setNextVersion_windupWeb
run_after: |
setNextVersion_windupWeb
secrets:
GITHUB_PAT: ${{ secrets.GH_PAT }}
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
windup-openshift:
needs: [ windup-web ]
uses: ./.github/workflows/release-template.yml
with:
owner: windup
repository: windup-openshift
previous_released_version: ${{ github.event.inputs.previous_released_version }}
release_version: ${{ github.event.inputs.release_version }}
next_development_version: ${{ github.event.inputs.next_development_version }}
branch: ${{ github.event.inputs.branch }}
jreleaser_file: jreleaser/basic.yml
cache_key: windup-openshift
cache_key_to_restore: windup-web
run_before: |
setNextVersion_windupOpenshift
groovy ./build/change_docker_image_tag.groovy ./templates/src/main/resources/web-template-empty-dir-executor.json ${{ github.event.inputs.release_version }}
groovy ./build/change_docker_image_tag.groovy ./templates/src/main/resources/web-template-empty-dir-executor-shared-storage.json ${{ github.event.inputs.release_version }}
run_after: |
setNextVersion_windupOpenshift
groovy ./build/change_docker_image_tag.groovy ./templates/src/main/resources/web-template-empty-dir-executor.json latest
groovy ./build/change_docker_image_tag.groovy ./templates/src/main/resources/web-template-empty-dir-executor-shared-storage.json latest
secrets:
GITHUB_PAT: ${{ secrets.GH_PAT }}
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
windup-openshift-container-images:
needs: [ windup-openshift ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
repository: windup/windup-openshift
token: ${{ secrets.GH_PAT }}
ref: ${{ github.event.inputs.release_version }}
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: 11
- name: Set up Maven
uses: stCarolas/[email protected]
with:
maven-version: 3.8.7
- name: Cache local Maven repository
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-windup-openshift-container-images-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-maven-windup-web-${{ github.run_id }}
- name: Login to Registry
uses: docker/login-action@v2
with:
registry: quay.io
username: ${{ secrets.QUAYIO_USERNAME }}
password: ${{ secrets.QUAYIO_PASSWORD }}
- name: Create container images
run: |
mvn install -DskipTests \
-Ddocker.name.windup.web=quay.io/windupeng/windup-web-openshift:$TAG \
-Ddocker.name.windup.web.executor=quay.io/windupeng/windup-web-openshift-messaging-executor:$TAG \
-Ddocker.name.windup.cli=quay.io/windupeng/windup-cli-openshift:$TAG \
-Dmulti-arch -Djib.httpTimeout=0
env:
TAG: ${{ github.event.inputs.release_version }}
- name: Push images to registry
run: |
docker image push --all-tags quay.io/windupeng/windup-web-openshift
docker image push --all-tags quay.io/windupeng/windup-web-openshift-messaging-executor
windup-web-distribution:
needs: [ windup-openshift ]
uses: ./.github/workflows/release-template.yml
with:
owner: windup
repository: windup-web-distribution
previous_released_version: ${{ github.event.inputs.previous_released_version }}
release_version: ${{ github.event.inputs.release_version }}
next_development_version: ${{ github.event.inputs.next_development_version }}
branch: ${{ github.event.inputs.branch }}
jreleaser_file: jreleaser/basic.yml
cache_key: windup-web-distribution
cache_key_to_restore: windup-openshift
run_before: |
setNextVersion_windupWebDistribution
run_after: |
setNextVersion_windupWebDistribution
secrets:
GITHUB_PAT: ${{ secrets.GH_PAT }}
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
windup-maven-plugin:
needs: [ windup-web-distribution ]
uses: ./.github/workflows/release-template.yml
with:
owner: windup
repository: windup-maven-plugin
previous_released_version: ${{ github.event.inputs.previous_released_version }}
release_version: ${{ github.event.inputs.release_version }}
next_development_version: ${{ github.event.inputs.next_development_version }}
branch: ${{ github.event.inputs.branch }}
jreleaser_file: jreleaser/basic.yml
cache_key: windup-maven-plugin
cache_key_to_restore: windup-web-distribution
run_before: |
setNextVersion_windupMavenPlugin
run_after: |
setNextVersion_windupMavenPlugin
secrets:
GITHUB_PAT: ${{ secrets.GH_PAT }}
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
windup-quickstarts:
needs: [ windup-maven-plugin ]
uses: ./.github/workflows/release-template.yml
with:
owner: windup
repository: windup-quickstarts
previous_released_version: ${{ github.event.inputs.previous_released_version }}
release_version: ${{ github.event.inputs.release_version }}
next_development_version: ${{ github.event.inputs.next_development_version }}
branch: ${{ github.event.inputs.branch }}
jreleaser_file: jreleaser/basic.yml
skip_maven_release: true # We just need tag repo but not to release to maven central
cache_key: windup-quickstarts-plugin
cache_key_to_restore: windup-maven-plugin
run_before: |
setNextVersion_windupQuickstarts
run_after: |
setNextVersion_windupQuickstarts
secrets:
GITHUB_PAT: ${{ secrets.GH_PAT }}
NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }}
NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
windup-javadocs:
needs: [ windup ]
runs-on: ubuntu-latest
environment: windup-announcements
steps:
- name: Checkout CI
uses: actions/checkout@v3
with:
path: ci
- uses: actions/checkout@v3
with:
repository: windup/windup
token: ${{ secrets.GH_PAT }}
ref: ${{ github.event.inputs.release_version }}
path: windup
fetch-depth: 0
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: 11
- name: Set up Maven
uses: stCarolas/[email protected]
with:
maven-version: 3.8.7
- name: Generate Javadocs
run: |
export SETTINGS_XML=$(readlink -f ci/maven/settings.xml)
cd windup
mvn install -DskipTests -s $SETTINGS_XML
mvn validate \
-s $SETTINGS_XML \
-PjavadocDist \
-DskipTests \
-Djavadoc.branding="Windup ${{ github.event.inputs.release_version }} Javadoc"
- name: Copy Javadocs to gh-pages
working-directory: windup
run: |
mv target/apidocs apidocs/
mvn clean
git checkout gh-pages
rm docs/latest
cd docs
mkdir -p ${{ github.event.inputs.release_version }}
ln -s ${{ github.event.inputs.release_version }}/ latest
cd ..
mv apidocs/ docs/latest/javadoc/
git add docs
- name: Commit and Push
uses: windup/windup-pipelines/actions/commit@main
with:
working-directory: windup
branch: gh-pages
commit_message: "Add ${{ github.event.inputs.release_version }} javadoc"