-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update Bamboo version compatibility check workflow (#72)
* chore(docs): update readme detailing our automated deployment process and Bamboo compatibility version updates * fix: Update compatibility check workflow Now supports creating/editing version update issue and closes existing version update PR if a new Bamboo version has been released --------- Co-authored-by: team-integrations-fnm-bot <[email protected]> Co-authored-by: JT <[email protected]>
- Loading branch information
1 parent
625050c
commit 3c92891
Showing
2 changed files
with
102 additions
and
36 deletions.
There are no files selected for viewing
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -66,17 +66,60 @@ java -jar atlassian-bamboo-agent-installer-<version>.jar http://bamboo-host-serv | |
## Building the Plugin | ||
Run the command `atlas-package` to build the plugin. The compiled plugin will be saved as `target\bamboo.jar`. | ||
|
||
## Updating the Atlassian Marketplace | ||
## Deploying a new version of the plugin to the Atlassian Marketplace | ||
|
||
### Automated process | ||
|
||
We use [release-please](https://github.com/googleapis/release-please) and [conventional commits](https://www.conventionalcommits.org) to generate release notes for new versions. | ||
|
||
The process once the `release-please` PR is merged is as follows: | ||
1. Build and package a new plugin JAR file | ||
2. Push the package to [Octopus](https://deploy.octopus.app/app#/Spaces-62/projects/bamboo-plugin) | ||
3. Automatically kick off a deployment to the `Production` environment | ||
- Upload plugin JAR file using the Atlassian Marketplace REST API | ||
- Create a new app version in the Atlassian Marketplace using the Atlassian Marketplace REST API | ||
- Confirm that the new app version was created | ||
- If the process fails to create the new app version, the deployment will fail | ||
|
||
### Manual process | ||
|
||
Keep in mind that the Bamboo plugin does not ship with the Octopus CLI tool. Updates to the CLI tool don't | ||
require that the Bamboo plugin be republished. | ||
|
||
To update the marketplace, use the following steps. | ||
|
||
1. Build the JAR file. You can do this locally, or get the JAR file artifact from TeamCity. | ||
- Note that if you are building locally you will need to increment the version inside the pom.xml file before building (`<version>1.0.3</version>`). This version is used by the store to show the latest artifact to end users. | ||
2. Browse to https://marketplace.atlassian.com/manage/plugins/com.octopus.bamboo/versions. Use the [email protected] | ||
To update the marketplace, use the following steps: | ||
1. Build the new JAR file. | ||
- You can do this locally, or get the artifact from the GitHub Actions run for the version you want to publish. | ||
- **Note** that if you are building locally you will need to increment the version inside the pom.xml file before building (`<version>1.0.3</version>`). This version is used by the store to show the latest artifact to end users. | ||
2. Browse to https://marketplace.atlassian.com/manage/plugins/com.octopus.bamboo/versions. Use the `[email protected]` | ||
account - credentials are in the password manager. | ||
3. Click the `Create version` button. | ||
4. Follow the wizard to upload the JAR file. The wizard will show you a lot of pages relating to how the add-on is | ||
to be displayed, but you can keep the exiting content. The only requirement are some release notes. | ||
|
||
### Nightly builds | ||
|
||
The nightly process is nearly identical to our release process (differences highlighted): | ||
1. Build and package a new **pre-release versioned** plugin JAR file | ||
2. Push the package to [Octopus](https://deploy.octopus.app/app#/Spaces-62/projects/bamboo-plugin) | ||
3. Automatically kick off a deployment to the **`Test`** environment | ||
- Upload plugin JAR file using the Atlassian Marketplace REST API | ||
- Create a new **private** app version in the Atlassian Marketplace using the Atlassian Marketplace REST API | ||
- This version will not be visible in the marketplace for people outside the Octopus organization | ||
- Confirm that the new app version was created | ||
- If the process fails to create the new app version, the deployment will fail | ||
|
||
## Automated Bamboo server compatibility version updates | ||
|
||
We have a weekly scheduled [workflow](.github/workflows/bamboo-compatibility-check.yml) that checks if there has been a new version of Bamboo server released since we last updated our Bamboo plugin. | ||
|
||
This process is as follows: | ||
1. Check if a new version of Bamboo server has been released | ||
- If there is no new version, execution is stopped | ||
2. Open a new issue with details of current and new Bamboo compatible versions | ||
- If there is already an open issue, it will update the existing issue with the new version details | ||
3. Update the compatible Bamboo version in the `<bamboo.version>` and `<bamboo.data.version>` properties inside the `pom.xml` file | ||
4. Commit and push the changes to a new branch | ||
5. Open a PR for the changes | ||
- The issue from step 2 above will be referenced and will be closed once the PR is merged | ||
|
||
Once the PR has been reviewed and merged, the automated `release-please` process described [above](#automated-process) will take over to push the new version of the plugin to the Atlassian Marketplace. |