CRM
CRM copied to clipboard
Need script to create releases
Too many manual steps currently to create release
- Verify no remaining items open on milestone
- Identify accepted commit for tag
- Download zip package from demo site with correct commit hash
- Create GitHub Tag / Release
- Upload zip archive to GitHub Release
- Add release notes
- Calculate SHA1 hash of zip archive. Include in Release Notes footer
- Publish release
- Close Milestone
- Create new milestone with due date of the next calendar Monday
- Create new build/
branch - Update Package.json version number
- Run
grunt updateVersions
- run
npm run gen-changelogs
- commit changes to new build branch
- create PR for new build branch to master
- Flow updates from master -> develop
Many of these steps can be automated, and make the release process less cumbersome
Resources:
- We have a way to interact with the GitHub API. Some custom code may need to be developed for creating releases.
- We have an ephemeral storage location for developer GitHub Personal Access Tokens (BuildConfig.json. This will never be committed to the repo, but may be used to facilitate the release creation process.
- We have a way to identify the commit hash at build time.
- Builds already occur in Jenkins. The script should leverage the sanitized build environment's result archive - not build locally for risk of including un-releasable files
Barriers / Questions:
- Should this script publish the release, or just save it as a draft for the devs to manually "publish"
@DawoudIO do you have feedback on this?
I'm thinking I'll create an NPM script to handle as many steps as possible.
Looks great
this is started with new actions to automate as much as we can.
.github/workflows/build-test-package.yml now helps with some of this, but the rest needs manual stuff still
@DawoudIO: How much of this is still an issue?
I did a release on my iPad yesterday and we have a next version script