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

chore(ci): add individual publishing of packages MONGOSH-1871 #2289

Open
wants to merge 31 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
a2f246b
WIP: individual publishing of packages
gagik Dec 10, 2024
417e1f4
use 2.3.7
gagik Dec 18, 2024
447e8d1
update package-lock.json and packages
gagik Dec 18, 2024
4c97468
restore changes
gagik Dec 19, 2024
8c9c214
ensure compatibility with old bump
gagik Dec 19, 2024
03ba373
wip
gagik Dec 19, 2024
ad630dc
switch to bump script
gagik Dec 30, 2024
28bfce7
Merge branch 'main' into gagik/individual-publishing
gagik Dec 30, 2024
45469f9
fix package bumping
gagik Dec 30, 2024
be919e0
check if bump is necessary for installs
gagik Dec 30, 2024
43c551d
remove old tests
gagik Dec 30, 2024
71aaa79
add publish-packages
gagik Dec 31, 2024
ceb13e7
remove package.json changes
gagik Dec 31, 2024
42d19ea
add ignore list
gagik Dec 31, 2024
bad9d59
set non-release package.json to 2.3.7
gagik Dec 31, 2024
193aa09
add bumping commit to release draft
gagik Dec 31, 2024
a19f408
set all to 2.3.7
gagik Dec 31, 2024
7ec4049
Update .github/workflows/release-packages.yml
gagik Dec 31, 2024
67c690d
fix removed compass skip
gagik Dec 31, 2024
9c4b387
switch to use app token
gagik Dec 31, 2024
4f43369
use bump in install script
gagik Dec 31, 2024
c9fd356
remove bump step
gagik Dec 31, 2024
285eda6
align with future release move changes
gagik Jan 6, 2025
69c8d6e
shorter
gagik Jan 6, 2025
68e3e62
fix naming
gagik Jan 6, 2025
ae5b5d4
Update .github/workflows/publish-auxiliary-packages.yml
gagik Jan 6, 2025
fc9a406
re-add bump
gagik Jan 6, 2025
72f04bd
Apply most changes from review
gagik Jan 6, 2025
69baf66
use npx and use tags in all cases
gagik Jan 8, 2025
72cde48
use monorepo tools as dependency
gagik Jan 8, 2025
4da9db1
remove bump, use version
gagik Jan 8, 2025
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
3 changes: 3 additions & 0 deletions .evergreen/evergreen.yml.in
Original file line number Diff line number Diff line change
Expand Up @@ -917,6 +917,9 @@ functions:
{
export NODE_JS_VERSION=${node_js_version}
source .evergreen/setup-env.sh
npm run evergreen-release bump
git add .
git commit --no-allow-empty -m "chore(release): bump to prepare for mongosh release"
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The idea here is that this will bump both "independent" and mongosh packages before the release draft and push it to main, so our branch is consistent with what we're releasing.
It might also make sense to only persist this after the release is published.

I am assuming this should work? Though not sure if the evergreen git setup has ability to push to main like this?

npm run evergreen-release draft
}

Expand Down
2 changes: 0 additions & 2 deletions .evergreen/install-npm-deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,5 @@ npm run mark-ci-required-optional-dependencies
# along with its types, but npm wouldn't try and compile the addon
(npm ci && test -e node_modules/mongodb-client-encryption) || npm ci --ignore-scripts

npm run evergreen-release bump
gagik marked this conversation as resolved.
Show resolved Hide resolved

echo "npm packages after installation"
npm ls || true
57 changes: 57 additions & 0 deletions .github/workflows/bump-packages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Bump packages
on:
workflow_dispatch:
push:
branches:
- main

jobs:
update_generated_files:
name: Bump packages
runs-on: ubuntu-latest
steps:
- name: Create Github App Token
uses: mongodb-js/devtools-shared/actions/setup-bot-token@main
id: app-token
with:
app-id: ${{ vars.DEVTOOLS_BOT_APP_ID }}
gagik marked this conversation as resolved.
Show resolved Hide resolved
private-key: ${{ secrets.DEVTOOLS_BOT_PRIVATE_KEY }}

- uses: actions/checkout@v4
with:
# don't checkout a detatched HEAD
ref: ${{ github.head_ref }}

- uses: actions/setup-node@v4
with:
node-version: 20.16.0
cache: "npm"

- name: Install npm@10.2.4
run: |
npm install -g npm@10.2.4

- name: Install Dependencies
run: |
npm -v
npm ci

- name: Bump packages
env:
LAST_BUMP_COMMIT_MESSAGE: "chore(release): bump package versions"
SKIP_BUMP_PACKAGES: "mongodb-compass"
gagik marked this conversation as resolved.
Show resolved Hide resolved
run: |
npm run bump-packages
git add .
git commit --no-allow-empty -m "$LAST_BUMP_COMMIT_MESSAGE" || true

- name: Create Pull Request
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # 7.0.5
with:
token: ${{ steps.app-token.outputs.token }}
commit-message: "chore(release): bump package versions"
branch: ci/bump-packages
title: "chore(release): bump package versions"
labels: no-title-validation
body: |
- Bump package versions
62 changes: 62 additions & 0 deletions .github/workflows/release-packages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: Publish
on:
# NOTE: avoid using the manual execution unless is the only way to fix some issue,
# rather retry failed jobs in case of flakes. The manual execution can potentially
# cause the tags to point to a different commit that the one used to publish
# the packages
workflow_dispatch:
push:
branches:
- main

jobs:
publish:
if: |
github.event_name == 'workflow_dispatch' ||
startsWith(github.event.head_commit.message, 'chore(release): bump package versions')

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
with:
# don't checkout a detatched HEAD
ref: ${{ github.head_ref }}

# this is important so git log has the whole history
fetch-depth: '0'
gagik marked this conversation as resolved.
Show resolved Hide resolved

- name: Setup git
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
gagik marked this conversation as resolved.
Show resolved Hide resolved

- name: "Use Node.js 14"
uses: actions/setup-node@v3
with:
node-version: 20.16.0

- name: Install npm@10.2.4
run: npm install -g npm@10.2.4

- name: Install Dependencies
run: |
npm run bootstrap-ci
shell: bash

- name: "Publish what is not already in NPM"
env:
NPM_TOKEN: ${{ secrets.DEVTOOLSBOT_NPM_TOKEN }}
run: |
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" >> .npmrc
npm config list
echo "Publishing packages as $(npm whoami)"
git update-index --assume-unchanged .npmrc
npm run publish-packages

- name: "Publish tags"
run: |
npx lerna list -a --json | \
jq -r '.[] | .name + "@" + .version' | \
xargs -i sh -c "git tag -a {} -m {} || true"
git push --follow-tags
8 changes: 2 additions & 6 deletions lerna.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
{
"packages": [
"configs/*",
gagik marked this conversation as resolved.
Show resolved Hide resolved
"packages/*",
"scripts/docker"
],
"version": "0.0.0-dev.0"
"packages": ["configs/*", "packages/*", "scripts/docker"],
"version": "independent"
gagik marked this conversation as resolved.
Show resolved Hide resolved
}
Loading
Loading