Project: Lagoon (App Definition and Development / Application Definition & Image Build)
File: releasing.md

Lagoon has a number of moving parts, making releases quite complicated! Ensure all the identified pull requests have been merged into main branch for: - Once you are confident, push the next tag in sequence (minor or patch) to the main branch in the format v2.MINOR.PATCH as per . This will trigger a Jenkins build, visible at https://ci.lagoon.sh/blue/organizations/jenkins/lagoon/branches Whilst this is building, push lightweight tags to the correct commits on `lagoon-ui` and `build-deploy-tool` in the format core-v2.MINOR.PATCH. Note that there are no other tags or releases on build-deploy-tool, but lagoon-ui also has it's own semver releases that are based on it's features. Once the build has completed successfully in Jenkins, head to https://github.com/uselagoon/lagoon-charts to prepare the charts release In the chart.yaml for the `lagoon-core` and `lagoon-test` charts, update the following fields: version: This is the next "minor" release of the chart - we usually use minor for a corresponding lagoon-core release appVersion: This is the actual tag of the released lagoon-core artifacthub.io/changes: All that's needed are the two lines in the below snippet, modified for the actual appVersion being released. ```yaml title="sample chart.yml snippets" version: 1.28.0 appVersion: v2.14.2 annotations: artifacthub.io/changes: | kind: changed description: update Lagoon appVersion to v2.14.2 ``` Only lagoon-core and lagoon-test charts are updated as a result of a lagoon-core release. Follow the lagoon-remote process if there are any other changes. Create a PR for this chart release, and the Github Actions suite will undertake a full suite of tests: Lint and test charts - matrix: performs a lint and chart install against the current tested version of Kubernetes Lint and test charts - current: performs a lint and chart install against previous/future versions of Kubernetes Lagoon tests: runs the full series of ansible tests against the release. Usually, failures in the lint and test charts are well explained (missing/misconfigured chart settings). If a single Lagoon test failes, it may just need re-running. If multiple failures occur, they will need investigating. Once those tests have all passed successfully, you can proceed with creating the releases: In create a release from the tag pushed earlier. Use the "Generate release notes" button to create the changelog. Look at previous releases for what we include in the release - and the lagoon-images link will always be the most recent released version. Note that the links to the charts, lagoon-ui and build-deploy-tool can all be filled in now, but the links won't work until the future steps. Mark this as the latest release and Publish the release. In create a release from the tag pushed earlier. Use the "Generate release notes" button to create the changelog - ensuring that the last core-v2.X tag is used, not any other tag. Look at previous releases for what we include in the release - Mark this as the latest release and Publish the release. In create a release from the tag pushed earlier. Use the "Generate release notes" button to create the changelog - ensuring that the last core-v2.X tag is used, not any other tag. Look at previous releases for what we include in the release - Mark this as the latest release and Publish the release. In merge the successful PR, this will create the lagoon-core and lagoon-test releases for you. Edit the resulting lagoon-core chart release to note the corresponding lagoon release in the title and text box, as per previous releases. Lagoon remote has a release cycle separate to Lagoon Core, and as such, can be released anytime that a dependency sub-chart or service is updated.