Skip to content

Global19/che-release

 
 

Repository files navigation

This repo contains orchestration scripts for Eclipse Che artifacts and container images.

Job is https://ci.centos.org/job/devtools-che-release-che-release

Note that over time, this job, and all the jobs called by it, will be migrated to a GH action script.

Che release process

Phase 0 - permissions

  1. Get push permission from @fbenoit to push applications

  2. Get commit rights from @fbenoit to push community PRs

Phase 1 - automated build steps

  1. Create new release issue to report status and collect any blocking issues

  2. Update VERSION file in che-release repo's release branch, including enabling the PHASES (currently 1 - 7)

  3. Push commit to release branch (with -f force if needed)

  4. Wait until https://ci.centos.org/job/devtools-che-release-che-release/ completes (2-3 hrs)

    TODO: add notification when build is done - email? slack? mattermost?

  5. NOTE: If the build should fail, check log for which step crashed (eg., due to rate limiting or other errors), like E2E test failures. Sometimes simply re-running will help.

  6. To skip sections which have completed successfully, simply remove PHASES from the VERSION file and commit that change to the release branch to trigger the parts of the release that were not successful.

Phase 2 - manual steps

community operators

TODO: move this step into a GH action. TODO: set up the above action to fire when a PR like https://github.com/eclipse/che-operator/pull/571/files is merged, eg., when: olm/eclipse-che-preview-openshift/deploy/olm-catalog/eclipse-che-preview-openshift/eclipse-che-preview-openshift.package.yaml and olm/eclipse-che-preview-kubernetes/deploy/olm-catalog/eclipse-che-preview-kubernetes/eclipse-che-preview-kubernetes.package.yaml are updated

This depends on the che-operator PRs being merged.

  1. Prepare for creation of community operator PRs via script in https://github.com/eclipse/che-operator (ONLY after ALL PRs for che-operator and chectl are merged):

     ./olm/prepare-community-operators-update.sh
    
  2. Once created you'll see our PRs here:

  3. If tests fail or community operator PRs get stalled: * Ping @j0zi (Jozef Breza) or @mavala (Martin Vala)

  4. After creating the PRs, add a link to the new PRs from the release issue, eg.,

chectl

TODO: set GH action to trigger when community PRs are merged? Can we trigger across repos? See problem in eclipse-che/che#18627

This depends on the che-operator PRs being merged (but not the community PRs).

  1. Run this action: https://github.com/che-incubator/chectl/actions?query=workflow%3A%22Release+-+create+pull+request+for+upcoming+release%22

  2. Find the generated PR: https://github.com/che-incubator/chectl/pulls?q=is%3Apr+author%3Aapp%2Fgithub-actions+%22Release+version%22+is%3Aopen

  3. Once approved / tests passed / known failures overridden, commit the PR, eg., che-incubator/chectl#1021

  4. This second action should run automatically on commit of the above PR: https://github.com/che-incubator/chectl/actions?query=workflow%3A%22Release+-+generate%20release%20and%20push%20artifacts%20to%20github%20pages%20(after%20PR%20approved)%22


Che release gotchas

  • VERSION file - should we add a test to verify we're not trying to re-release an existing release w/o an explicit override?

  • add step to delete existing tag if exists and need to re-run a step (eg., broken theia needs a re-release of :7.y.z+1)

  • can run make-release.sh for chectl before operator PRs are merged? does it make sense to create the GH release BEFORE we run the make-release script?

  • add notification (email? UMB? slack?) when che-release job is done?

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%