Skip to content

Commit

Permalink
Prepare custom version on next release (#3990)
Browse files Browse the repository at this point in the history
* Prepare custom version on next release

* Test in branch

* Don't set version in advance

* Remove --canary flag

* Change and commit version

* Setup git config

* Revert temp changes
  • Loading branch information
dapplion authored May 11, 2022
1 parent fd6f702 commit 5142ba3
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 22 deletions.
50 changes: 32 additions & 18 deletions .github/workflows/release-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,21 +40,37 @@ jobs:
run: yarn build
if: steps.cache-deps.outputs.cache-hit == 'true'
# </common-build>
- name: Get version
id: version
run: |
PACKAGE_VERSION=$(node -p "require('./packages/lodestar/package.json').version")
export VERSION=${PACKAGE_VERSION}-dev.${GITHUB_SHA:0:10}
echo "::set-output name=version::$VERSION"
echo PACKAGE_VERSION $PACKAGE_VERSION GITHUB_SHA $GITHUB_SHA VERSION $VERSION
- name: Change and commit version
# Write version before publishing so it's picked up by `lerna publish from-package`.
# It must also be committed to ensure a clean git tree, otherwise `lerna publish` errors.
# This "temp" commit doesn't change the actually release commit which is captured above.
# git-data is also correct, since it's generated at build time, before `lerna version` run.
run: |
node_modules/.bin/lerna version ${{ steps.version.outputs.version }} \
--yes \
--no-git-tag-version
git config user.name 'temp'
git config user.email 'temp@github.com'
git commit -am "${{ steps.version.outputs.version }}"
- name: Publish to npm registry
# Just use lerna publish with --canary option. Using 'from-package' ignore other options
# and only compares against the verison in package.json, and skips release if already
# published.
# Note: before https://github.com/ChainSafe/lodestar/commit/28e2c74cf0f1bede8b09c8c9fec26f54b367e3fd
# We used `lerna publish --canary` option. However, since we now publish must version on branches,
# i.e. v0.35.x branch, lerna fails to detect the latest version and publishes canary versions as
# `0.34.0-dev.173+28e2c74cf0` instead of `0.36.0-dev.4+28e2c74cf0`, which creates confusion.
#
# --no-git-reset:
# Do not delete code version artifacts so the next step can pick the version
#
# --canary:
# Format version with commit (1.1.0-alpha.0+81e3b443). Make sure the previous
# released tags are not lightweight("commit" type), but proper annotated ("tag" type)
# Otherwise the version canary will generate will be from last annotated tag type
# Best way to create such a tag is by using 'git tag -a' or using lerna publish!
#
# --dist-tag next:
# Make this nightly version installable with `@next`
#
Expand All @@ -71,17 +87,15 @@ jobs:
#
# NOTE: Using --preid dev.$(git rev-parse --short=7 HEAD) results in `0.24.3-dev.3ddb91d.0+3ddb91d`
run: |
node_modules/.bin/lerna publish --yes --no-verify-access \
--canary --dist-tag next --no-git-reset --force-publish \
--preid dev --exact
node_modules/.bin/lerna publish from-package \
--yes \
--no-verify-access \
--dist-tag next \
--no-git-reset \
--force-publish \
--exact
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Get version
id: version
run: |
VERSION=$(node -p "require('./packages/lodestar/package.json').version")
echo VERSION $VERSION
echo "::set-output name=version::$VERSION"
outputs:
version: ${{ steps.version.outputs.version }}

Expand Down
2 changes: 1 addition & 1 deletion RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export TAG=v0.34.0-beta.0 && git tag -a $TAG 9fceb02 -m "$TAG" && git push origi
4. The team creates a PR to bump `master` to the next version (in the example: `v0.35.0`) and continues releasing nightly builds.

```
lerna version minor --no-git-tag-version --force-publish
lerna version minor --no-git-tag-version --force-publish --yes
```

After 3-5 days of testing:
Expand Down
4 changes: 1 addition & 3 deletions lerna.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
{
"packages": [
"packages/*"
],
"packages": ["packages/*"],
"npmClient": "yarn",
"useWorkspaces": true,
"version": "0.36.0",
Expand Down

0 comments on commit 5142ba3

Please sign in to comment.