diff --git a/README.md b/README.md index 075bd92af4..e411b94bd9 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,6 @@ https://www.eclipse.org/che/) **Next-generation container development platform, developer workspace server and cloud IDE** [![Eclipse License](https://img.shields.io/badge/license-Eclipse-brightgreen.svg)](https://github.com/codenvy/che/blob/master/LICENSE) -[![Build Status](https://ci.centos.org/buildStatus/icon?job=devtools-che-che-build-master)](https://ci.centos.org/view/Devtools/job/devtools-che-che-build-master/) @@ -75,11 +74,10 @@ If you are interested in fixing issues and contributing directly to the code bas We maintain the [Che roadmap](https://github.com/eclipse/che/wiki/Roadmap) in the open way. We welcome anyone to ask question and contribute to the roadmap by joining our [community meetings](https://github.com/eclipse/che/wiki/Che-Dev-Meetings). ## CI -The following [CentOS CI jobs](https://ci.centos.org/) are associated with the repository: +There are several [GitHub Actions](https://github.com/eclipse/che/actions) workflows implemented for this repository: -- [`master`](https://ci.centos.org/view/Devtools/job/devtools-che-che-build-master/) - builds and push Maven artifacts on each commit to the [`master`](https://github.com/eclipse/che/tree/master). -- [`nightly`](https://ci.centos.org/view/Devtools/job/devtools-che-che-nightly/) - builds and push Maven artifacts, builds CentOS images and pushes them to [quay.io](https://quay.io/organization/eclipse) on a daily basis from the [`master`](https://github.com/eclipse/che/tree/master) branch. -- [`release`](https://ci.centos.org/view/Devtools/job/devtools-che-che-release/) - builds and push Maven artifacts, builds images from the [`release`](https://github.com/eclipse/che/tree/release) branch. CentOS images are public and pushed to [quay.io](https://quay.io/organization/eclipse). +- [`nightly`](https://github.com/eclipse/che/actions/workflows/nightly-build.yml) - builds Maven artifacts, builds container images and pushes them to [quay.io](https://quay.io/organization/eclipse) on a daily basis from the [`master`](https://github.com/eclipse/che/tree/master) branch. +- [`release`](https://github.com/eclipse/che/actions/workflows/release.yml) - builds Maven artifacts and container images. Images are public and pushed to [quay.io](https://quay.io/organization/eclipse). See [RELEASE.md](https://github.com/eclipse/che/blob/master/RELEASE.md) for more information about this workflow. ### License Che is open sourced under the Eclipse Public License 2.0. diff --git a/RELEASE.md b/RELEASE.md index 3dedc4f672..9c6e527aa1 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,113 +1,12 @@ -# Eclipse Che release process +# Automated release workflow +Release is performed with GitHub Actions workflow [release.yml](https://github.com/eclipse/che/actions/workflows/release.yml). +It is also used to release [Che Parent](https://github.com/eclipse/che-parent), if appropriate input parameter `releaseParent` is set to true. +The release will perform the build of Maven Artifacts, build and push of all nesessary docker images, and bumping up development version. -##### 0. Create new issue for the release +[make-release.sh](https://github.com/eclipse/che/blob/master/make-release.sh) is the script that can be used for standalone release outside of GitHub Actions. However, ensure that all environment variables are set in place before invoking `./make-release.sh`, similarly to how it is outlined in [release.yml](https://github.com/eclipse/che/actions/workflows/release.yml): -Use this template, eg., for VERSION = 7.8.0 and BRANCH = 7.8.x: - - - -##### 1. Create branch for release preparation and next bugfixes: - -``` -git branch {branchname} # e.g 7.7.x -git push --set-upstream origin {branchname} -``` - -##### 2. Create PR for switch master to the next development version: - -``` - git branch set_next_version_in_master_{next_version} # e.g 7.8.0-SNAPSHOT - # Update parent version - mvn versions:update-parent versions:commit -DallowSnapshots=true -DparentVersion={next_version} - - # Update dependencies - sed -i -e "s#{version_old}#{next_version}#" pom.xml - git commit - git push --set-upstream origin set_next_version_in_master_{next_version} - ``` - -* Create PR -##### 3. In release branch of Che need to set up released version of plugin registry and plugins: - 1 Update deploy_che.sh (should be deprecated soon - https://github.com/eclipse/che/issues/14069) default environment variables - 2 Update default version of plugins and editors in che.properties to released tag e.g `7.7.0` - 3 Update Helm charts with released tag e.g `7.7.0` - - To do this execute commands: - ``` - cd .ci - set_tag_version_images.sh 7.25.0 - git commit - git push - ``` -##### 4. Start pre-release testing. -##### 5. If pre-release test passed need to merge branch to the `release` branch and push changes, release process will start by webhook: -* Set released parent version -* Update dependencies in pom.xml, then: - ``` - git checkout release - git merge -X theirs {branchname} - git push -f - ``` - -##### 6. Close/release repository on Nexus - https://oss.sonatype.org/#stagingRepositories - - > **Note:** For bugfix release procedure will be similar except creating new branch on first step and update version in master branch. - -# Script -`make-release.sh` is a script that performs these actions, use --prerelease-testing flag to prepare "RC" release for QE testing, and --trigger-release to perform a release after that +RELEASE_CHE_PARENT - if `true`, will perform the release of Che Parent as well. +VERSION_CHE_PARENT - if RELEASE_CHE_PARENT is `true`, here the version of Che Parent must be provided. +REBUILD_FROM_EXISTING_TAGS - if `true`, release will not create new tag, but instead checkout to existing one. Use this to rerun failed attempts, without having to recreate the tag. +BUILD_AND_PUSH_IMAGES - if `true`, will build all asociated images in [dockerfiles](https://github.com/eclipse/che/tree/master/dockerfiles) directory. Set `false`, if this step needs to be skipped. +BUMP_NEXT_VERSION - if `true`, will increase the development versions in main and bugfix branches. Set false, if this step needs to be skipped