Skip to content

Commit 0d36ba6

Browse files
committed
Merge remote-tracking branch 'upstream/main' into zozhang/lepton-secrets
Signed-off-by: Zoey Zhang <[email protected]>
2 parents a908d0b + 83d9a99 commit 0d36ba6

File tree

91 files changed

+9239
-3119
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+9239
-3119
lines changed

.github/workflows/build-docs.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Copyright (c) 2025, NVIDIA CORPORATION.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
name: Build docs
16+
17+
on:
18+
pull_request:
19+
types: [opened, synchronize, reopened, labeled, unlabeled]
20+
workflow_call:
21+
22+
jobs:
23+
build-docs:
24+
uses: NVIDIA-NeMo/FW-CI-templates/.github/workflows/[email protected]
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
name: 'Changelog Build (Release)'
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
last-release-tag:
7+
description: Last Git tag to start from (exclusive) (e.g. `v2.0.0`)
8+
type: string
9+
required: true
10+
release-branch:
11+
description: Release branch to build changelog on (e.g. `r2.1.0`)
12+
type: string
13+
required: true
14+
changelog-main-content:
15+
description: Custom changelog content to include before detailed changelogs
16+
type: string
17+
required: false
18+
default: ''
19+
20+
jobs:
21+
changelog:
22+
runs-on: ubuntu-latest
23+
steps:
24+
- name: Checkout branch
25+
uses: actions/checkout@v4
26+
with:
27+
ref: main
28+
fetch-depth: 0
29+
30+
- name: Build Changelog
31+
id: github_tag
32+
uses: mikepenz/[email protected]
33+
env:
34+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
35+
with:
36+
# Configuration file is setup with filters for domains
37+
# owner:repo must point to current repo
38+
# fromTag: Auto resolved from historical tag order (previous tag compared to current tag)
39+
# toTag: Current tag reference
40+
configuration: ".github/workflows/config/changelog-config.json"
41+
owner: ${{ github.repository_owner }}
42+
repo: ${{ github.event.repository.name }}
43+
ignorePreReleases: "false"
44+
failOnError: "false"
45+
fromTag: ${{ inputs.last-release-tag }}
46+
toTag: ${{ inputs.release-branch }}
47+
48+
- name: Update changelog file
49+
env:
50+
RELEASE_BRANCH: ${{ inputs.release-branch }}
51+
CHANGELOG: ${{ steps.github_tag.outputs.changelog }}
52+
MAIN_CONTENT: ${{ inputs.changelog-main-content }}
53+
shell: bash -x -e -u -o pipefail {0}
54+
run: |
55+
RELEASE_VERSION=${RELEASE_BRANCH#r}
56+
CHANGELOG=$(echo "$CHANGELOG" | sed '/^[[:blank:]]*#/s/#/###/')
57+
58+
# Build release notes starting with version header
59+
RELEASE_NOTES="## NVIDIA Nemo Run $RELEASE_VERSION"
60+
61+
# Add custom content if provided
62+
if [ -n "$MAIN_CONTENT" ]; then
63+
RELEASE_NOTES="$RELEASE_NOTES
64+
65+
$MAIN_CONTENT"
66+
fi
67+
68+
# Add detailed changelogs section
69+
RELEASE_NOTES="$RELEASE_NOTES
70+
71+
### Detailed Changelogs:
72+
73+
$CHANGELOG"
74+
75+
printf "%s\n" "$RELEASE_NOTES" | sed '/<!-- Next changelog -->/r /dev/stdin' CHANGELOG.md > CHANGELOG.tmp.md
76+
77+
mv CHANGELOG.tmp.md CHANGELOG.md
78+
79+
- name: Inspect new changelog file
80+
run: cat CHANGELOG.md
81+
82+
- name: Create or update label
83+
uses: actions/github-script@v6
84+
with:
85+
script: |
86+
const labelName = '${{ inputs.release-branch }}';
87+
const labelColor = '0366d6'; // Blue color
88+
const labelDescription = `Release ${labelName}`;
89+
90+
try {
91+
// Try to get the label
92+
await github.rest.issues.getLabel({
93+
owner: context.repo.owner,
94+
repo: context.repo.repo,
95+
name: labelName
96+
});
97+
console.log(`Label '${labelName}' already exists`);
98+
} catch (error) {
99+
if (error.status === 404) {
100+
// Label doesn't exist, create it
101+
await github.rest.issues.createLabel({
102+
owner: context.repo.owner,
103+
repo: context.repo.repo,
104+
name: labelName,
105+
color: labelColor,
106+
description: labelDescription
107+
});
108+
console.log(`Created label '${labelName}'`);
109+
} else {
110+
throw error;
111+
}
112+
}
113+
114+
- name: Create Pull Request
115+
uses: peter-evans/create-pull-request@v7
116+
with:
117+
commit-message: "beep boop: Update changelog"
118+
title: "Update changelog for `${{ inputs.release-branch }}`"
119+
signoff: true
120+
sign-commits: true
121+
base: main
122+
branch: bot/chore/update-changelog-into-${{ inputs.release-branch }}
123+
labels: ${{ inputs.release-branch }}

.github/workflows/cherry-pick-release-commit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77

88
jobs:
99
cherry-pick:
10-
uses: NVIDIA-NeMo/FW-CI-templates/.github/workflows/_cherry_pick.yml@v0.22.7
10+
uses: NVIDIA-NeMo/FW-CI-templates/.github/workflows/_cherry_pick.yml@v0.63.0
1111
secrets:
1212
PAT: ${{ secrets.PAT }}
1313
SLACK_WEBHOOK_ADMIN: ${{ secrets.SLACK_WEBHOOK_ADMIN }}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
name: Stale-Close-Inactive-Issues-PRs
2+
on:
3+
schedule:
4+
- cron: "30 1 * * *"
5+
6+
jobs:
7+
close-issues:
8+
uses: NVIDIA-NeMo/FW-CI-templates/.github/workflows/[email protected]
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
name: Community Bot
2+
3+
on:
4+
issues:
5+
types: [opened, edited, reopened, closed, deleted]
6+
issue_comment:
7+
types: [created, edited, deleted]
8+
9+
jobs:
10+
community-bot:
11+
uses: NVIDIA-NeMo/FW-CI-templates/.github/workflows/[email protected]
12+
with:
13+
community_project_id: ${{ vars.COMMUNITY_PROJECT_ID }}
14+
secrets:
15+
GH_TOKEN: ${{ secrets.PAT }}
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
{
2+
"categories": [
3+
{
4+
"title": "## Executors\n\n",
5+
"labels": ["executor", "local", "slurm", "dgxcloud", "lepton", "skypilot", "docker"],
6+
"exclude_labels": ["ignore"]
7+
},
8+
{
9+
"title": "\n## Ray Integration\n\n",
10+
"labels": ["ray", "kuberay", "ray-slurm"],
11+
"exclude_labels": ["ignore"]
12+
},
13+
{
14+
"title": "\n## CLI & Configuration\n\n",
15+
"labels": ["cli", "config", "parsing"],
16+
"exclude_labels": ["ignore"]
17+
},
18+
{
19+
"title": "\n## Experiment & Job Management\n\n",
20+
"labels": ["experiment", "job", "task"],
21+
"exclude_labels": ["ignore"]
22+
},
23+
{
24+
"title": "\n## Packaging & Deployment\n\n",
25+
"labels": ["packaging", "deployment"],
26+
"exclude_labels": ["ignore"]
27+
},
28+
{
29+
"title": "\n## Documentation\n\n",
30+
"labels": ["docs", "documentation"],
31+
"exclude_labels": ["ignore"]
32+
},
33+
{
34+
"title": "\n## CI/CD\n\n",
35+
"labels": ["ci", "github-actions", "workflow"],
36+
"exclude_labels": ["ignore"]
37+
},
38+
{
39+
"title": "\n## Bug Fixes\n\n",
40+
"labels": ["bug", "bugfix", "fix"],
41+
"exclude_labels": ["ignore"]
42+
}
43+
],
44+
"ignore_labels": [
45+
"ignore",
46+
"skip-changelog"
47+
],
48+
"sort": "ASC",
49+
"template": "\n${{CHANGELOG}}\n## Others\n\n${{UNCATEGORIZED}}\n",
50+
"pr_template": "- ${{TITLE}} [#${{NUMBER}}](${{URL}})",
51+
"empty_template": "- No changes in this release",
52+
"label_extractor": [
53+
{
54+
"pattern": "(.*executor.*)|(.*local.*)|(.*slurm.*)|(.*dgxcloud.*)|(.*lepton.*)|(.*skypilot.*)|(.*docker.*)",
55+
"target": "executor",
56+
"flags": "gimu",
57+
"on_property": ["title", "body"]
58+
},
59+
{
60+
"pattern": "(.*ray.*)|(.*kuberay.*)",
61+
"target": "ray",
62+
"flags": "gimu",
63+
"on_property": ["title", "body"]
64+
},
65+
{
66+
"pattern": "(.*cli.*)|(.*command.*)|(.*parse.*)|(.*argument.*)",
67+
"target": "cli",
68+
"flags": "gimu",
69+
"on_property": ["title", "body"]
70+
},
71+
{
72+
"pattern": "(.*experiment.*)|(.*job.*)|(.*task.*)",
73+
"target": "experiment",
74+
"flags": "gimu",
75+
"on_property": ["title", "body"]
76+
},
77+
{
78+
"pattern": "(.*packaging.*)|(.*package.*)|(.*deploy.*)|(.*archive.*)|(.*mount.*)",
79+
"target": "packaging",
80+
"flags": "gimu",
81+
"on_property": ["title", "body"]
82+
},
83+
{
84+
"pattern": "(.*doc.*)|(.*readme.*)|(.*guide.*)|(.*tutorial.*)",
85+
"target": "docs",
86+
"flags": "gimu",
87+
"on_property": ["title", "body"]
88+
},
89+
{
90+
"pattern": "(.*\\bci\\b.*)|(.*github.*)|(.*workflow.*)|(.*action.*)",
91+
"target": "ci",
92+
"flags": "gimu",
93+
"on_property": ["title", "body"]
94+
},
95+
{
96+
"pattern": "(.*\\[bug.*)|(.*\\bfix\\b.*)|(.*bugfix.*)|(.*patch.*)",
97+
"target": "bug",
98+
"flags": "gimu",
99+
"on_property": ["title", "body"]
100+
}
101+
],
102+
"duplicate_filter": {
103+
"pattern": ".+",
104+
"on_property": "title",
105+
"method": "match"
106+
},
107+
"transformers": [
108+
],
109+
"max_tags_to_fetch": 100,
110+
"max_pull_requests": 500,
111+
"max_back_track_time_days": 365,
112+
"exclude_merge_branches": [
113+
],
114+
"tag_resolver": {
115+
"method": "semver"
116+
}
117+
}
118+
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Copyright (c) 2025, NVIDIA CORPORATION.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
name: Copyright check
16+
17+
on:
18+
pull_request:
19+
workflow_dispatch:
20+
21+
jobs:
22+
copyright-check:
23+
uses: NVIDIA-NeMo/FW-CI-templates/.github/workflows/[email protected]

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ on:
3131
description: Branch to target for version bump
3232
jobs:
3333
release:
34-
uses: NVIDIA-NeMo/FW-CI-templates/.github/workflows/_release_library.yml@v0.22.6
34+
uses: NVIDIA-NeMo/FW-CI-templates/.github/workflows/_release_library.yml@v0.40.0
3535
with:
3636
release-ref: ${{ inputs.release-ref }}
3737
python-package: nemo_run

0 commit comments

Comments
 (0)