Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RCORE-2134 touch up the GHA release process based on the first full run #7730

Merged
merged 4 commits into from
May 31, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 2 additions & 8 deletions .github/workflows/make-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ jobs:
uses: ncipollo/release-action@2c591bcc8ecdcd2db72b97d6147f871fcd833ba5 #! 1.14.0
with:
bodyFile: extracted_changelog.md
name: ${{ steps.get-version.outputs.version }}
name: Realm Core v${{ steps.get-version.outputs.version }}
commit: ${{ github.base_ref }}
tag: ${{ steps.get-version.outputs.version }}
tag: v${{ steps.get-version.outputs.version }}
token: ${{ secrets.GITHUB_TOKEN }}
draft: false
- name: Update Changelog
Expand All @@ -53,12 +53,6 @@ jobs:
labels: no-jira-ticket
add-paths: CHANGELOG.md
commit-message: New changelog section to prepare for vNext
- name: Merge Pull Request
uses: juliangruber/merge-pull-request-action@9234b8714dda9a08f3d1df5b2a6a3abd7b695353 #! 1.3.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
number: ${{ steps.vnext-pr.outputs.pull-request-number }}
method: squash
- name: 'Post to #appx-releases'
uses: realm/ci-actions/release-to-slack@fa20eb972b9f018654fdb4e2c7afb52b0532f907
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/prepare-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
body-path: changes-since-last-tag.txt
labels: no-jira-ticket
commit-message: Prepare for release ${{ inputs.version }}
token: ${{ secrets.REALM_CI_PAT }}
token: ${{ secrets.GITHUB_TOKEN }}
Comment on lines -35 to +36
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need any of the special abilities of the REALM_CI_PAT for this action. We should be fine with the default GITHUB_TOKEN (docs). One difference is that further github actions cannot be triggered by jobs using the GITHUB_TOKEN, but this is not an issue because the next step in the release process is to approve and manually merge the generated PR.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's right - if you only work in the same repository and don't need subsequent workflows to trigger for any of the work GITHUB_TOKEN does then I'd say it's the best choice.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for confirming Yavor!

add-paths: |
dependencies.yml
Package.swift
Expand Down
18 changes: 10 additions & 8 deletions doc/development/how-to-release.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
The core release process is automated with github [actions](https://github.com/realm/realm-core/actions)

1. Run the prepare-release action.
- input the base branch that you would like to make a release from (usually this will be "master").
- input the release version (eg. "10.14.7")
1. Go to the prepare-release [action](https://github.com/realm/realm-core/actions/workflows/prepare-release.yml) and click the "Run workflow" dropdown.
- Input the base branch that you would like to make a release from (usually this will be "master").
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Input the base branch that you would like to make a release from (usually this will be "master").
- Select the base branch that you would like to make a release from (usually this will be "master") in the drop down.

- Input the release version (eg. "10.14.7")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Update the version description on line 10 of prepare-release.yml, since this is used for the prompt text:
Enter the version of the new release (e.g., "10.123.1" or "4.5.0-CustDemo")


2. This will create a PR, which you should look over and get someone else on the team to review. Verify the changelog by checking the PR description which has a list of commits since the last tag was made. If any changes are required, commit them to this PR's branch.

3. When ready, merge the PR. You can squash if there are only "prepare release" changes, but use a "merge-commit" strategy if there are functional changes added manually to the PR. On merge, the "make-release" action will run. This takes care of:
- Making a tag
- Publishing the release on Github
- Updating the Changelog
- Announcing the release in the #appx-releases slack channel
3. When ready, merge the PR. You can squash if there are only "prepare release" changes, but use a "merge-commit" strategy if there are functional changes added manually to the PR (note that if using a merge strategy, the last commit after merge will be the one tagged, so you may want to reorder the commits so that the 'prepare' commit comes last). On merge, the "make-release" action will run. This will:
- Make a tag
- Publish the release on Github
- Open a PR to update the Changelog with the new template section
- Announce the release in the #appx-releases slack channel

4. Find the newly generated PR that adds the new changelog section. Approve it and merge it.

## Previous process

Expand Down
3 changes: 2 additions & 1 deletion tools/release-init.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ sed -i.bak -e "/.*\[#????\](https.*/d" "${project_dir}/CHANGELOG.md"
rm "${project_dir}/CHANGELOG.md.bak" || exit 1

# assumes that tags and history have been fetched
git log $(git describe --tags --abbrev=0)..HEAD --oneline --no-merges > changes-since-last-tag.txt
echo "commits since last tag:\n" > changes-since-last-tag.txt
git log $(git describe --tags --abbrev=0)..HEAD --oneline --no-merges >> changes-since-last-tag.txt
echo changes since last tag are
cat changes-since-last-tag.txt

Expand Down
Loading