-
Notifications
You must be signed in to change notification settings - Fork 5.9k
feat: add release workflow #5560
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
Changes from 4 commits
807306c
6a30725
1e2bb21
d09e7a5
2e93582
4df2c6e
18d02d6
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
name: Draft release | ||
|
||
on: | ||
workflow_dispatch: | ||
|
||
permissions: | ||
contents: write # For creating releases. | ||
discussions: write # For creating a discussion. | ||
|
||
# Cancel in-progress runs for pull requests when developers push | ||
# additional changes | ||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: ${{ github.event_name == 'pull_request' }} | ||
|
||
jobs: | ||
draft: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
# TODO: delete our release scripts and the ci/lib.sh funcs they use | ||
jsjoeio marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- name: Download artifacts | ||
uses: dawidd6/action-download-artifact@v2 | ||
id: download | ||
with: | ||
branch: main | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Actually do we need the branch? We could just use whatever artifacts are on the branch we set the workflow to target when dispatching it I think? Normally we would set it to There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I guess not! That's a good point so I guess I'll change this to |
||
workflow: ci.yaml | ||
workflow_conclusion: completed | ||
check_artifacts: true | ||
name: release-packages | ||
path: ./release-packages | ||
|
||
- uses: softprops/action-gh-release@v1 | ||
with: | ||
draft: true | ||
discussion_category_name: "📣 Announcements" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I wasn't able to test this since I don't have Discussions on my fork (not sure if possible). I don't think this should cause any issue though 🤞🏼 |
||
files: ./release-packages/* | ||
body_path: ci/build/release-notes.txt | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We can probably remove There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah that's true. I'll delete
Haha that would be awesome! Probably some script step before this one that parses |
This file was deleted.
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
Code v99.99.999 | ||
|
||
### Changed | ||
### Added | ||
### Deprecated | ||
### Removed | ||
### Fixed | ||
### Security |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -137,43 +137,19 @@ changelog](https://github.com/emacs-mirror/emacs/blob/master/etc/NEWS). | |
|
||
## Releases | ||
|
||
With each release, we rotate the role of release manager to ensure every | ||
maintainer goes through the process. This helps us keep documentation up-to-date | ||
and encourages us to continually review and improve the flow. | ||
|
||
If you're the current release manager, follow these steps: | ||
|
||
1. Create a [release issue](../.github/ISSUE_TEMPLATE/release.md) | ||
1. Fill out checklist | ||
1. Publish the release | ||
1. After release is published, close release milestone | ||
|
||
### Publishing a release | ||
|
||
1. Create a new branch called `release/v0.0.0` (replace 0s with actual version aka v4.5.0) | ||
1. If you don't do this, the `npm-brew` GitHub workflow will fail. It looks for the release artifacts under the branch pattern. | ||
1. Run `yarn release:prep` and type in the new version (e.g., `3.8.1`) | ||
1. GitHub Actions will generate the `npm-package`, `release-packages` and | ||
`release-images` artifacts. You do not have to wait for this step to complete | ||
before proceeding. | ||
1. Run `yarn release:github-draft` to create a GitHub draft release from the | ||
template with the updated version. Make sure to update the `CHANGELOG.md`. | ||
1. Run `yarn release:prep <version>` (e.g., `yarn release:prep 3.8.1`) | ||
1. Bump chart version in `Chart.yaml`. | ||
1. Summarize the major changes in the release notes and link to the relevant | ||
issues. | ||
1. Change the @ to target the version branch. Example: `v3.9.0 @ Target: release/v3.9.0` | ||
1. Wait for the `npm-package`, `release-packages` and `release-images` artifacts | ||
to build. | ||
1. Run `yarn release:github-assets` to download the `release-packages` artifact. | ||
They will upload them to the draft release. | ||
1. Run some basic sanity tests on one of the released packages (pay special | ||
attention to making sure the terminal works). | ||
1. Publish the release and merge the PR. CI will automatically grab the | ||
1. Summarize the major changes in the `CHANGELOG.md` | ||
1. Download CI artifacts and make sure code-server works locally. | ||
1. Merge PR and wait for CI build on `main` to finish. | ||
1. Go to GitHub Actions > Draft release > Run workflow off `main`. CI will automatically upload the artifacts to the release. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. So much better already! |
||
1. Add the release notes from the `CHANGELOG.md` and publish release. CI will automatically grab the | ||
artifacts, publish the NPM package from `npm-package`, and publish the Docker | ||
Hub image from `release-images`. | ||
1. Update the AUR package. Instructions for updating the AUR package are at | ||
[coder/code-server-aur](https://github.com/coder/code-server-aur). | ||
1. Wait for the npm package to be published. | ||
|
||
#### AUR | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I decided for the first version of this to not add on new tags but we can add that in next version. Happy to be convinced to add it here though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense to me!