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: add commands for publishing rc #419

Merged
merged 1 commit into from
Sep 10, 2019
Merged

Conversation

achingbrain
Copy link
Member

This change adds two commands:

aegir update-last-successful-build

This command updates a branch called build/last-successful (configurable)

It's intended to be run on CI after every successful build of master.

It:

  1. Checks that it's running on the head (or detached head) of master
  2. Creates a temporary branch
  3. Creates yarn.lock and npm-shrinkwrap.json
  4. Adds them to git
  5. Deletes the remote build/last-successful branch if it exists
  6. Pushes the new build/last-successful to origin

It deletes the remote branch first because merging conflicts is tedious and
this branch should only be used by automated processes.

aegir publish-rc

This creates a release branch for the next release and publishes a release candidate to npm.

It:

  1. Deletes your local copy of build/last-successful
  2. Pulls down and checks out an updated version
  3. Creates the release branch by semver.incing the package.json version
  4. Overwrites existing pre-id in the version number
  5. Uses aegir's release command to publish an .rc version

This change adds two commands:

```console
aegir update-last-successful-build
```

This command updates a branch called `build/last-successful` (configurable)
It's intended to be run on CI after every successful build of master.

It:

1. Checks that it's running on the head (or detached head)  of `master`
1. Creates a temporary branch
1. Creates `yarn.lock` and `npm-shrinkwrap.json`
1. Adds them to git
1. Deletes the remote `build/last-successful` branch if it exists
1. Pushes the new `build/last-successful` to origin

It deletes the remote branch first because merging conflicts is tedious and
this branch should only be used by automated processes.

```console
aegir publish-rc
```

This creates a release branch for the next release and publishes a release
candidate to npm.

It:

1. Deletes your local copy of `build/last-successful`
1. Pulls down and checks out an updated version
1. Creates the release branch by `semver.inc`ing the `package.json` version
1. Overwrites existing pre-id in the version number
1. Uses aegir's release command to publish an `.rc` version
@achingbrain
Copy link
Member Author

Just used to publish https://www.npmjs.com/package/ipfs/v/0.38.0-rc.0

most_interesting_man_test_in_production_meme

@achingbrain
Copy link
Member Author

N.b.

  1. I'll open more PRs for publishing automation as we go through the process this month
  2. You have to run aegir publish-rc (and probably subsequent commands) manually for now as our accounts require OTPs which are hard to automate. Maybe we need a special CI user that doesn't have it enabled, let's talk about it.
  3. I'll update the js-IPFS release issue template when these commands are merged

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

Successfully merging this pull request may close these issues.

2 participants