Standardize release process
juliushaertl opened this issue · comments
- Ask for
- Office team on the releases org
- Admin permissions on the office team repos
- Add nextcloud_release_service as app store co-maintainer
- Setup github actions for automated releases
- Deck
- Add GitHub action to all supported branches
- Add release key to Nextcloud-releases
- Publish a first release as a test run
- Nextcloud Office
- Add GitHub action to all supported branches
- Add release key to Nextcloud-releases
- Publish a first release as a test run
- Office Online
- Add GitHub action to all supported branches
- Add release key to Nextcloud-releases
- Publish a first release as a test run
-
TextNot needed as released as part of the server release bundles
- Deck
- Guided release to go through the release process once together
- Standardise a way to generate the changelog
- Github action with workflow trigger to bump version and generate changelog
Prepare first release of a new app
- Make sure you have the necessary workflow on your https://github.com/nextcloud source repository
- Make sure your tagged commit also have the workflow
- Make sure this repository have the proper APP_PRIVATE_KEY secret set
- Make the nextcloud_release_service user is a co-maintainer of your app on https://apps.nextcloud.com/
- Make sure you have admin rights to this repository
Pending documentation
- Prepare your local git checkout to add the release remote
git remote add release git@github.com:nextcloud-releases/richdocuments.git
Checklist for the pull request
<!-- Example checklist for richdocuments, repo urls and stable branch names might need adjustments -->
## Release pull request
- [ ] Pull latest stable branch `git checkout stableX`
- [ ] Branch off a release branch `git checkout -b release/X.X.X`
- [ ] Bump versions
- [ ] appinfo/info.xml
- [ ] package.json
- [ ] package-lock.json
- [ ] Update changelog (Get list of merged PRs `git log vX.X.Y..HEAD --oneline | grep Merge | grep -v dependabot` where X.X.Y is the previous release version)
- [ ] Commit the version bump and push to origin
- [ ] Merge release pull request
## Release the app
- [ ] Once merged, checkout the stable branch again `git checkout stableX` and `git pull`
- [ ] Tag a new release `git tag vx.x.x`
- [ ] Push tag
- [ ] to the main repo: `git push origin vx.x.x`
- [ ] to the release repo: `git push release vx.x.x`
- [ ] Go to https://github.com/nextcloud-releases/richdocuments/tags
- [ ] Select the tag that you want to create a release of and click "Create release from tag"
- [ ] Add the version number to the title and the changelog
- [ ] Publish the release
- [ ] Wait for the automation to build the app and to be published to the App Store
- The status can be checked at https://github.com/nextcloud-releases/richdocuments/actions/workflows/appstore-build-publish.yml
- [ ] Check that the App Store shows the release https://apps.nextcloud.com/apps/richdocuments
Useful commands for generating a changelog
for pr in $(git log v1.5.7..HEAD --oneline | grep Merge | grep -v dependabot | cut -d " " -f 5 | sed 's/#//g'); do printf " - "; gh pr view $pr | head -n1 | cut -d " " -f 2- | tr -d '\n'; echo " #$pr" ; done