Commits to master use the Conventional Commits Specification. Admins select the Squash and Merge option when merging in Pull Requests and rename the commit to follow the format: type(scope): description.
Examples:
feat(Settings): Added setting 'xyz'
fix(Load): fixed xyz
feat(Settings): BREAKING CHANGE: New major release
chore(cleanup): cleaned up xyz
standard-version is used to calculate the version number based on the standard commits on master since the last tagged version. Provide a specific number instead to bypass the calculated version.
-
Checkout master
-
Run release script:
npm run release
. This will create a new commit and push to master. -
Wait for all Travis CI builds to complete. Once finished, it will create the draft release and attach installers.
NOTE: The tag build and master build both generate release artifacts, but only the master branch version of the artifacts will work with auto-updating the app. If master fails because artifacts are already present in GitHub, delete the artifacts and restart the master build.
-
Copy generated release notes from
CHANGELOG.md
to the release draft, change the release name to the version number minus the 'v', and publish release.NOTE: In GitHub, the last release that you touch in any way (like adding release notes) gets the "Latest release" tag. Auto-updates will not work if the last version published does not have this tag, so make sure that older releases don't accidentally get this by re-editing the latest release.
-
Update the Data Loader App README download links with the new release version.
Electron Builder documentation on setting up code signing: https://www.electron.build/code-signing
-
In Jira, put in an SE ticket request for a Microsoft Authenticode certificate from Digicert.
-
Save the certificate in the .p12 file format
-
Encode the file to base64 (macOS:
base64 -i yourFile.p12 -o win-certificate.txt
). -
Do not commit the file
win-certificate.txt
to source control! -
Setup Code Signing Certificate (CSC) secure environment variables in Travis CI, available only to
master
branch, so no other branches can sign/publish:- Set WIN_CSC_LINK to the contents of
win-certificate.txt
by copying and pasting the very long one line string. - Set WIN_CSC_KEY_PASSWORD to the password you chose when generating the .p12 file.
- Set WIN_CSC_LINK to the contents of
-
In order to create a mac certificate, first request access to the Bullhorn Apple Developer account.
-
After a confirmation email you will have access using your bullhorn email address as the user ID.
-
Create a Mac Developer ID Application Certificate at: https://developer.apple.com/account/resources/certificates/list. This require the highest level of admin rights that cannot be assigned to a developer. Someone from IT will need to generate the certificate while signed into developer.apple.com from your mac.
-
Download the generated certificate to your Mac's keychain.
-
From within Keychain Access, export the Mac Development Certificate using the .p12 file format. Set a strong password on the file, but don't use special characters in the password because “values are not escaped when your builds are executed”.
-
Encode the file to base64 (macOS:
base64 -i yourFile.p12 -o mac-certificate.txt
). -
Do not commit the file
mac-certificate.txt
to source control! -
Setup Code Signing Certificate (CSC) secure environment variables in Travis CI, available only to
master
branch, so no other branches can sign/publish:- Set CSC_LINK to the contents of
mac-certificate.txt
by copying and pasting the very long one line string. - Set CSC_KEY_PASSWORD to the password you chose when generating the .p12 file.
- Set CSC_LINK to the contents of
-
Test locally by setting the CSC_LINK and CSC_KEY_PASSWORD environment variables before running
yarn package
. -
Setup notarizing the mac app for distributing without virus scan warnings. This is required for Mac OSX Catalina and beyond in order to distribute outside of the app store. See official notarizing rules: https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution
-
Setup 2-factor authentication with developer.apple.com
-
Generate an App-specific password: https://support.apple.com/en-us/HT204397.
-
Setup APPLE account secure environment variables in Travis CI, available to all branches right now, until the afterSign hook knows if signing happened: electron-userland/electron-builder#4452.
- Set APPLE_ID to you bullhorn apple developer email (your bullhorn email address)
- Set APPLE_APP_SPECIFIC_PASSWORD to the App-specific password you generated.
- Set APPLE_TEAM_ID to the Bullhorn Team ID from Apple: https://developer.apple.com/account#MembershipDetailsCard
-
Test locally, by setting APPLE_ID / APPLE_APP_SPECIFIC_PASSWORD environment variables on the command line and running
yarn package
- The notarize step can take several minutes while it uploads the package to Apple for verification using their automated virus scan.