version set to 10.6.27 for release #389
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: Release | |
on: | |
workflow_dispatch: | |
inputs: | |
releaseVersion: | |
description: Release Version | |
required: true | |
default: 10.0.0 | |
snapshotVersion: | |
description: Snapshot Version | |
required: true | |
default: 11.0.0-SNAPSHOT | |
run-name: 'version set to ${{ github.event.inputs.releaseVersion }} for release' | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
fetch-depth: 0 | |
- name: Cache local Maven repository | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-maven- | |
- name: Set up JDK Corretto 21 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'corretto' | |
java-version: '21' | |
server-id: ossrh | |
server-username: MAVEN_USERNAME | |
server-password: MAVEN_PASSWORD | |
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} | |
gpg-passphrase: GPG_PASSPHRASE | |
architecture: x64 | |
- name: Install NodeJS | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- name: Install esbuild | |
run: npm i -g esbuild | |
- name: Install TypeScript compiler | |
run: npm i -g typescript | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
with: | |
install: true | |
- name: Setup Docker Buildx | |
run: | | |
docker buildx create --name dirigible-builder | |
docker buildx use dirigible-builder | |
- name: "Configure Git" | |
run: | | |
git fetch | |
git checkout ${{ github.event.inputs.branch }} | |
git config user.name "$GITHUB_ACTOR" | |
git config user.email "$GITHUB_ACTOR@users.noreply.github.com" | |
- name: "Maven: Set Release Version" | |
run: mvn versions:set -DnewVersion=${{ github.event.inputs.releaseVersion }} | |
- name: Build Dirigible | |
run: mvn clean install -Dmaven.javadoc.skip=false | |
#-----------------Publish to DockerHub-------------------# | |
- name: Docker Login | |
run: docker login -u ${{secrets.DOCKER_USER}} -p ${{secrets.DOCKER_PASSWORD}} | |
- name: Push Dirigible (Spring) | |
run: | | |
cd build/application | |
docker buildx build --push --tag dirigiblelabs/dirigible:${{ github.event.inputs.releaseVersion }} -o type=image --platform=linux/arm64,linux/amd64 . | |
#-----------------Publish to DockerHub-------------------# | |
#---------------Publish to Maven Central-----------------# | |
- name: Publish packages to Maven Central | |
run: | | |
mvn javadoc:jar | |
mvn deploy -P release -DskipTests -Dmaven.test.skip=true | |
env: | |
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} | |
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} | |
GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASS_PHRASE }} | |
- name: "Git: Commit Release Version" | |
run: | | |
git add '**pom.xml' | |
git commit -m "version set to ${{ github.event.inputs.releaseVersion }} for release" | |
- name: "Maven: Set Snapshot Version" | |
run: mvn versions:set -DnewVersion=${{ github.event.inputs.snapshotVersion }} | |
- name: "Git: Commit Snapshot Version" | |
run: | | |
git add '**pom.xml' | |
git commit -m "version set to ${{ github.event.inputs.snapshotVersion }} for development" | |
#---------------Publish to Maven Central-----------------# | |
#----------------Publish GitHub Release------------------# | |
- name: Package WAR files | |
run: | | |
zip --junk-paths application-all build/application/target/dirigible-application-${{ github.event.inputs.releaseVersion }}-executable.jar | |
- name: Create Release | |
id: create_release | |
uses: softprops/action-gh-release@v2 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
tag_name: v${{ github.event.inputs.releaseVersion }} | |
name: ${{ github.event.inputs.releaseVersion }} | |
draft: false | |
prerelease: false | |
files: | | |
./application-all.zip | |
body: | | |
## Eclipse Dirigible - ${{ github.event.inputs.releaseVersion }} | |
#### Release: | |
The lates release notes are available [here](https://www.dirigible.io/releases/). | |
> _**Note:** All released versions can be found [here](https://github.com/eclipse/dirigible/releases/)._ | |
#### Maven: | |
250+ Maven dependencies can be found [here]( https://search.maven.org/#search%7Cga%7C1%7Corg.eclipse.dirigible). | |
```xml | |
<dependency> | |
<groupId>org.eclipse.dirigible</groupId> | |
<artifactId>dirigible-components-group-core</artifactId> | |
<version>${{ github.event.inputs.releaseVersion }}</version> | |
</dependency> | |
``` | |
#### Helm: | |
To install Eclipse Dirigible with Helm go to the [Setup with Helm](https://www.dirigible.io/help/setup/helm/) page. | |
All Helm charts, with detailed explanation, setup and configurations, can be found [here](https://artifacthub.io/packages/search?org=dirigiblelabs). | |
``` | |
helm repo add dirigible https://eclipse.github.io/dirigible | |
helm repo update | |
helm install dirigible dirigible/dirigible --version ${{ github.event.inputs.releaseVersion }} | |
``` | |
#### Docker images: | |
- [dirigiblelabs/dirigible](https://hub.docker.com/r/dirigiblelabs/dirigible/tags?page=1&ordering=last_updated) - All-in-one docker image - recommended for local test & development. | |
> _**Note:** All Docker images are availalbe [here](https://hub.docker.com/u/dirigiblelabs)_ | |
#### Available for download `*.war` packages: | |
- _**[application-all](https://github.com/eclipse/dirigible/releases/download/v${{ github.event.inputs.releaseVersion }}/application-all.zip) - All-in-one package - recommended for local test & development.**_ | |
> _**Note:** Unzip the downloaded file to extract the `application-all-XXX.jar` binary._ | |
For more information go to [https://www.dirigible.io/help/setup/](https://www.dirigible.io/help/setup/). | |
#----------------Publish GitHub Release------------------# | |
- name: "Git: Push Changes" | |
run: | | |
git checkout -B ${{ github.event.inputs.releaseVersion }} | |
git push --set-upstream origin ${{ github.event.inputs.releaseVersion }} | |
git checkout -B master | |
git push --set-upstream origin master | |
#----------------Publish Helm Release------------------# | |
- name: Helm tool installer | |
uses: Azure/setup-helm@v4 | |
- name: Helm Charts Release - Checkout gh-pages | |
run: | | |
mkdir charts-temp | |
cp -r build/helm-charts/ charts-temp/ | |
#### Git Checkout Workaround | |
git add .github/ | |
git add .reuse/ | |
git add LICENSES/ | |
git add logo/ | |
git add components/ | |
git reset --hard | |
#### | |
git fetch | |
git checkout gh-pages | |
cp charts/* . | |
- name: Helm Charts Release - Set Chart Version - Dirigible | |
run: | | |
cd charts-temp/helm-charts/dirigible/ | |
find *.yaml -type f -exec sed -i ''s/#{DirigibleVersion}#/${{ github.event.inputs.releaseVersion }}/g'' {} \; | |
- name: Helm Charts Release | |
run: | | |
cp charts/* charts-temp/helm-charts/ | |
cd charts-temp/helm-charts/ | |
helm package dirigible | |
cd .. | |
helm repo index helm-charts/ --url https://eclipse.github.io/dirigible/charts | |
cp helm-charts/index.yaml ../. | |
cp helm-charts/dirigible-${{ github.event.inputs.releaseVersion }}.tgz ../charts/ | |
cd .. | |
git config user.name "$GITHUB_ACTOR" | |
git config user.email "$GITHUB_ACTOR@users.noreply.github.com" | |
git add index.yaml | |
git add charts/ | |
git commit -m "Updates Helm Charts - Release ${{ github.event.inputs.releaseVersion }}" | |
git push origin gh-pages | |
git add . | |
git reset --hard | |
git checkout ${{ github.event.inputs.branch }} | |
#----------------Publish Helm Release------------------# |