Skip to content

Commit

Permalink
chore(ci): add individual publishing of packages MONGOSH-1871 (#2289)
Browse files Browse the repository at this point in the history
  • Loading branch information
gagik authored Jan 14, 2025
1 parent f0f7b7f commit 435d4ce
Show file tree
Hide file tree
Showing 47 changed files with 664 additions and 395 deletions.
2 changes: 2 additions & 0 deletions .evergreen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4274,6 +4274,8 @@ functions:
source .evergreen/setup-env.sh
export PUPPETEER_SKIP_DOWNLOAD="true"
npm run evergreen-release draft
git add .
git commit --no-allow-empty -m "chore(release): bump to prepare for mongosh release"
}
release_publish_download_and_list_artifacts:
Expand Down
2 changes: 2 additions & 0 deletions .evergreen/evergreen.yml.in
Original file line number Diff line number Diff line change
Expand Up @@ -919,6 +919,8 @@ functions:
source .evergreen/setup-env.sh
export PUPPETEER_SKIP_DOWNLOAD="true"
npm run evergreen-release draft
git add .
git commit --no-allow-empty -m "chore(release): bump to prepare for mongosh release"
}

release_publish_download_and_list_artifacts:
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

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

jobs:
update_generated_files:
name: Bump packages
runs-on: ubuntu-latest
steps:
- uses: mongodb-js/devtools-shared/actions/setup-bot-token@main
id: app-token
with:
app-id: ${{ vars.DEVTOOLS_BOT_APP_ID }}
private-key: ${{ secrets.DEVTOOLS_BOT_PRIVATE_KEY }}
- uses: actions/checkout@v4
with:
# don't checkout a detatched HEAD
ref: ${{ github.head_ref }}

# this is important so git log can pick up on
# the whole history to generate the list of AUTHORS
fetch-depth: "0"
token: ${{ steps.app-token.outputs.token }}

- 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 ci
- name: Bump packages
run: |
npm run bump-auxiliary
git add .
git commit --no-allow-empty -m "chore(release): bump auxiliary packages" || 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 auxiliary packages"
branch: ci/bump-auxiliary-packages
title: "chore(release): bump auxiliary packages"
labels: no-title-validation
body: |
- Bumps auxiliary package versions. Merging will trigger a release of these packages.
58 changes: 58 additions & 0 deletions .github/workflows/publish-auxiliary-packages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Publish Auxiliary Packages
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 auxiliary packages')
runs-on: ubuntu-latest

steps:
- uses: mongodb-js/devtools-shared/actions/setup-bot-token@main
id: app-token
with:
app-id: ${{ vars.DEVTOOLS_BOT_APP_ID }}
private-key: ${{ secrets.DEVTOOLS_BOT_PRIVATE_KEY }}

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

# this is important so git log can pick up on
# the whole history to generate the list of AUTHORS
fetch-depth: "0"
token: ${{ steps.app-token.outputs.token }}

- name: "Use Node.js 20"
uses: actions/setup-node@v4
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)"
npm run publish-auxiliary
8 changes: 2 additions & 6 deletions lerna.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
{
"packages": [
"configs/*",
"packages/*",
"scripts/docker"
],
"version": "0.0.0-dev.0"
"packages": ["configs/*", "packages/*", "scripts/docker"],
"version": "independent"
}
Loading

0 comments on commit 435d4ce

Please sign in to comment.