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

feat: automate releases #1957

Merged
merged 26 commits into from
Jul 8, 2022
Merged

feat: automate releases #1957

merged 26 commits into from
Jul 8, 2022

Conversation

SgtPooki
Copy link
Member

@SgtPooki SgtPooki commented Jun 28, 2022

  • split github workflows so they're composable
  • automatically update changelog on release
  • Create .car file from dag export of CID
  • publish .car file to release artifacts
  • integrate with semantic-release, modifying changelog entries via custom-release-notes-generator.js, automatically adding CID

@SgtPooki SgtPooki force-pushed the feature/add-changelog branch from cfe9c93 to 8929944 Compare June 28, 2022 22:32
@SgtPooki SgtPooki temporarily deployed to Deploy June 28, 2022 22:36 Inactive
@SgtPooki
Copy link
Member Author

@lidel , I played around with this a bit longer than I planned yesterday, trying to get CID during changelog process, removing all manual steps. I think if we use a CAR with a single CID, we could remove the CID from the release notes, and then auto-generate them easier. what are your thoughts?

@lidel
Copy link
Member

lidel commented Jun 29, 2022

@SgtPooki try rebasing on main branch + applying fix from #1958 (comment) – using node 16.x seems to fix e2e for now

@SgtPooki SgtPooki marked this pull request as draft June 29, 2022 18:30
@SgtPooki SgtPooki marked this pull request as draft June 29, 2022 18:30
@SgtPooki
Copy link
Member Author

@lidel will do, but I think this update would be best decided after we discuss how to handle CIDs in the changelog. I moved this PR to a draft.

  1. If we have a single CID that is always the latest webui release, then we don't need to copy the CID into release notes each time and can simply put it at the top of the README (or hardcode into changelog template).
  2. If we don't, then adding the CID to release notes would require plugging into the existing workflows when generating the changelog (also do-able)

@SgtPooki SgtPooki temporarily deployed to Deploy June 29, 2022 18:37 Inactive
@lidel
Copy link
Member

lidel commented Jun 29, 2022

We should:

  • continue documenting CID for every release (we've been doing that for past releases)
  • have automation that attach a .car with that CIDs DAG to GitHub Release
    • this is important because we have people running go-ipfs in private swarms which are unable to fetch data from public one

@lidel lidel force-pushed the main branch 4 times, most recently from dabaee3 to 7ddf870 Compare June 29, 2022 22:19
@SgtPooki
Copy link
Member Author

i've decided to go an entirely better direction and use semantic-release for this since aegir and everything else is using it.

I've got the CID automatically adding to the release-notes (which semantic-release should add to the changelog automatically) via npx semantic-release -b feature/add-changelog --dry-run --no-ci --debug:

image

@SgtPooki SgtPooki marked this pull request as ready for review July 5, 2022 16:05
@SgtPooki SgtPooki changed the title feat: add changelog feat: automate releases Jul 5, 2022
@SgtPooki SgtPooki requested review from lidel and hacdias July 5, 2022 17:24
Copy link
Member

@lidel lidel left a comment

Choose a reason for hiding this comment

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

Thank you @SgtPooki!

This approach looks sensible, ok to merge as long you address comments below and fix e2e tests to pass.

Copy link
Member

@hacdias hacdias left a comment

Choose a reason for hiding this comment

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

LGTM. Just the tests not passing.

This change also continues on failure for both of the pinning steps,
but will fail the job if neither pinning attempt succeeds
@SgtPooki SgtPooki temporarily deployed to Deploy July 7, 2022 19:44 Inactive
* except for semantic-release required updates
@SgtPooki SgtPooki temporarily deployed to Deploy July 7, 2022 19:58 Inactive
@SgtPooki SgtPooki temporarily deployed to Deploy July 7, 2022 20:09 Inactive
@SgtPooki SgtPooki temporarily deployed to Deploy July 8, 2022 16:32 Inactive
@SgtPooki SgtPooki temporarily deployed to Deploy July 8, 2022 16:53 Inactive
@SgtPooki
Copy link
Member Author

SgtPooki commented Jul 8, 2022

trying one last time to have the CI pass with the semantic-release dependencies added to package.json and package-lock.json, if this fails, I'm going to revert and merge. if it passes, I'm going to remove the npm install of those deps from the semantic release step

@SgtPooki SgtPooki temporarily deployed to Deploy July 8, 2022 17:03 Inactive
@SgtPooki SgtPooki merged commit 8bc04ac into main Jul 8, 2022
@SgtPooki SgtPooki deleted the feature/add-changelog branch July 8, 2022 17:11
@SgtPooki SgtPooki temporarily deployed to Deploy July 8, 2022 17:14 Inactive
ipfs-gui-bot pushed a commit that referenced this pull request Jul 8, 2022
## [2.16.0](v2.15.1...v2.16.0) (2022-07-08)

 CID `bafybeif2m4cd3vwwx532hclbuifl2ihqvtv627jatrljrh44gzmvtlg4xe`

 ---

### Features

* Add ipfs-gui-bot for semantic release ([36d5eea](36d5eea))
* automate releases ([#1957](#1957)) ([8bc04ac](8bc04ac))

### Bug Fixes

* **ci:** .github/workflows/tx-pull.yml ([7ddf870](7ddf870))
* npm install before semantic release ([e806924](e806924))
* semantic-release uses GITHUB_TOKEN ([1f74b1b](1f74b1b))
* updated ipfs-geoip (2022-06-28) ([#1958](#1958)) ([9e4dde2](9e4dde2))

### Trivial Changes

* **i18n:** pull translations automatically ([#1956](#1956)) ([0c47a69](0c47a69))
* pull transifex translations ([#1960](#1960)) ([e9a0fe2](e9a0fe2))
* **readme:** js-ipfs CID update blocked by [#1730](#1730) ([#1959](#1959)) ([89b021c](89b021c))
@ipfs-gui-bot
Copy link
Collaborator

🎉 This PR is included in version 2.16.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants