Skip to content

Commit 2b91db4

Browse files
authored
v23.07.00
v23.07.00
2 parents 5de57a8 + 413d4f6 commit 2b91db4

File tree

334 files changed

+15224
-4869
lines changed

Some content is hidden

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

334 files changed

+15224
-4869
lines changed
File renamed without changes.

.dockerignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.gitignore

.github/ops-bot.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# This file controls which features from the `ops-bot` repository below are enabled.
2+
# - https://github.com/rapidsai/ops-bot
3+
4+
copy_prs: true
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Build and test CPU legate.core on GH
2+
3+
concurrency:
4+
group: ci-cpu-on-${{ github.event_name }}-from-${{ github.ref_name }}
5+
cancel-in-progress: true
6+
7+
on:
8+
push:
9+
branches:
10+
- "pull-request/[0-9]+"
11+
- "branch-*"
12+
13+
jobs:
14+
build-cpu:
15+
uses:
16+
./.github/workflows/gh-build.yml
17+
with:
18+
build-target: cpu
19+
# Ref: https://docs.rapids.ai/resources/github-actions/#cpu-labels for `linux-amd64-cpu4`
20+
runs-on: ${{ github.repository == 'nv-legate/legate.core' && 'linux-amd64-cpu4' || 'ubuntu-latest' }}
21+
sha: ${{ github.sha }}
22+
23+
test-cpu:
24+
needs:
25+
- build-cpu
26+
strategy:
27+
fail-fast: false
28+
matrix:
29+
include:
30+
- { name: Pytest Unit Tests, test-scope: unit }
31+
- { name: mypy, test-scope: mypy }
32+
name: ${{ matrix.name }}
33+
uses:
34+
./.github/workflows/gh-test.yml
35+
with:
36+
build-target: cpu
37+
runs-on: ${{ github.repository == 'nv-legate/legate.core' && 'linux-amd64-cpu4' || 'ubuntu-latest' }}
38+
sha: ${{ github.sha }}
39+
test-scope: ${{ matrix.test-scope }}
40+
41+
cleanup:
42+
needs:
43+
- build-cpu
44+
- test-cpu
45+
# This ensures the cleanup job runs even if previous jobs fail or the workflow is cancelled.
46+
if: always()
47+
uses:
48+
./.github/workflows/gh-cleanup.yml
49+
with:
50+
build-target: cpu
51+
sha: ${{ github.sha }}

.github/workflows/ci-gh-docs.yml

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: Build legate.core documentation
2+
on:
3+
workflow_dispatch:
4+
push:
5+
branches-ignore:
6+
- gh-pages # deployment target branch (this workflow should not exist on that branch anyway)
7+
pull_request:
8+
branches-ignore:
9+
- gh-pages # deployment target branch (this workflow should not exist on that branch anyway)
10+
env:
11+
COMMIT: ${{ github.event.pull_request.head.sha || github.sha }}
12+
PROJECT: github-core-ci
13+
REF: ${{ github.event.pull_request.head.ref || github.ref }}
14+
EVENT_NAME: ${{ github.event_name }}
15+
LABEL: ${{ github.event.pull_request.head.label }}
16+
REPO_URL: ${{ github.event.pull_request.head.repo.html_url || github.event.repository.html_url }}
17+
# Prevent output buffering
18+
PYTHONUNBUFFERED: 1
19+
jobs:
20+
build:
21+
runs-on: ubuntu-latest
22+
steps:
23+
- name: Dump GitHub context
24+
env:
25+
GITHUB_CONTEXT: ${{ toJSON(github) }}
26+
run: echo "$GITHUB_CONTEXT"
27+
- name: Dump job context
28+
env:
29+
JOB_CONTEXT: ${{ toJSON(job) }}
30+
run: echo "$JOB_CONTEXT"
31+
- name: Dump steps context
32+
env:
33+
STEPS_CONTEXT: ${{ toJSON(steps) }}
34+
run: echo "$STEPS_CONTEXT"
35+
- name: Dump runner context
36+
env:
37+
RUNNER_CONTEXT: ${{ toJSON(runner) }}
38+
run: echo "$RUNNER_CONTEXT"
39+
- name: Dump strategy context
40+
env:
41+
STRATEGY_CONTEXT: ${{ toJSON(strategy) }}
42+
run: echo "$STRATEGY_CONTEXT"
43+
- name: Dump matrix context
44+
env:
45+
MATRIX_CONTEXT: ${{ toJSON(matrix) }}
46+
run: echo "$MATRIX_CONTEXT"
47+
48+
####################################
49+
# Actual build process starts here #
50+
####################################
51+
52+
- name: Checkout
53+
uses: actions/checkout@v3
54+
55+
- name: Generate YAML file listing dependencies
56+
run: scripts/generate-conda-envs.py --python 3.10 --ctk 11.8 --os linux --compilers --openmpi
57+
58+
- name: Install dependencies from generated YAML file
59+
run: conda env create -n legate -f environment-test-linux-py3.10-cuda11.8-compilers-openmpi.yaml
60+
61+
- name: Build doxygen documentation through install.py
62+
run: |
63+
conda run -n legate /bin/bash -c "./install.py --docs"
64+
65+
- name: Build documentation using Makefile
66+
working-directory: ./docs/legate/core
67+
run: |
68+
conda run -n legate /bin/bash -c "make html"
69+
70+
- name: Run link checker
71+
working-directory: ./docs/legate/core
72+
run: |
73+
conda run -n legate /bin/bash -c "make linkcheck"
74+
75+
- name: Upload documentation
76+
uses: actions/upload-artifact@v3
77+
with:
78+
name: legate-core-docs
79+
path: ./docs/legate/core/build/html/*
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Build and test GPU legate.core on GH
2+
3+
concurrency:
4+
group: ci-gpu-on-${{ github.event_name }}-from-${{ github.ref_name }}
5+
cancel-in-progress: true
6+
7+
on:
8+
push:
9+
branches:
10+
- "pull-request/[0-9]+"
11+
- "branch-*"
12+
13+
jobs:
14+
build-gpu:
15+
uses:
16+
./.github/workflows/gh-build.yml
17+
with:
18+
build-target: gpu
19+
# Ref: https://docs.rapids.ai/resources/github-actions/#cpu-labels for `linux-amd64-cpu4`
20+
runs-on: ${{ github.repository == 'nv-legate/legate.core' && 'linux-amd64-cpu4' || 'ubuntu-latest' }}
21+
sha: ${{ github.sha }}
22+
23+
test-gpu:
24+
needs:
25+
- build-gpu
26+
strategy:
27+
fail-fast: false
28+
matrix:
29+
include:
30+
- { name: Pytest Unit Tests, test-scope: unit }
31+
- { name: mypy, test-scope: mypy }
32+
name: ${{ matrix.name }}
33+
uses:
34+
./.github/workflows/gh-test.yml
35+
with:
36+
build-target: gpu
37+
runs-on: linux-amd64-gpu-v100-latest-1
38+
sha: ${{ github.sha }}
39+
test-scope: ${{ matrix.test-scope }}
40+
41+
cleanup:
42+
needs:
43+
- build-gpu
44+
- test-gpu
45+
# This ensures the cleanup job runs even if previous jobs fail or the workflow is cancelled.
46+
if: always()
47+
uses:
48+
./.github/workflows/gh-cleanup.yml
49+
with:
50+
build-target: gpu
51+
sha: ${{ github.sha }}

.github/workflows/ci.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ on:
66
pull_request:
77
branches-ignore:
88
- gh-pages # deployment target branch (this workflow should not exist on that branch anyway)
9-
schedule:
10-
# * is a special character in YAML so you have to quote this string
11-
- cron: '0 */6 * * *'
129
env:
1310
COMMIT: ${{ github.event.pull_request.head.sha || github.sha }}
1411
PROJECT: github-core-ci

.github/workflows/gh-build.yml

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
name: Build legate.core on GH
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
build-target:
7+
required: true
8+
type: string
9+
runs-on:
10+
required: true
11+
type: string
12+
sha:
13+
required: true
14+
type: string
15+
16+
env:
17+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
18+
IMAGE_NAME: legate.core-${{ inputs.build-target }}
19+
USE_CUDA: ${{ (inputs.build-target == 'cpu' && 'OFF') || 'ON' }}
20+
21+
jobs:
22+
build:
23+
name: build-${{ inputs.build-target }}-sub-workflow
24+
25+
permissions:
26+
id-token: write # This is required for configure-aws-credentials
27+
contents: read # This is required for actions/checkout
28+
packages: write # This is required to push docker image to ghcr.io
29+
30+
runs-on: ${{ inputs.runs-on }}
31+
32+
steps:
33+
- name: Checkout legate.core (= this repo)
34+
uses: actions/checkout@v3
35+
with:
36+
fetch-depth: 0
37+
38+
- if: github.repository_owner == 'nv-legate'
39+
name: Get AWS credentials for sccache bucket
40+
uses: aws-actions/configure-aws-credentials@v2
41+
with:
42+
aws-region: us-east-2
43+
role-duration-seconds: 28800 # 8 hours
44+
role-to-assume: arn:aws:iam::279114543810:role/gha-oidc-nv-legate
45+
46+
- name: Build docker image
47+
run: |
48+
echo BUILD_TARGET: ${{ inputs.build-target }}
49+
echo USE_CUDA: ${{ env.USE_CUDA }}
50+
51+
docker build \
52+
--build-arg AWS_SESSION_TOKEN=${{ env.AWS_SESSION_TOKEN }} \
53+
--build-arg AWS_ACCESS_KEY_ID=${{ env.AWS_ACCESS_KEY_ID }} \
54+
--build-arg AWS_SECRET_ACCESS_KEY=${{ env.AWS_SECRET_ACCESS_KEY }} \
55+
--build-arg GITHUB_TOKEN=${{ env.GITHUB_TOKEN }} \
56+
--build-arg USE_CUDA=${{ env.USE_CUDA }} \
57+
--progress=plain \
58+
--tag=$IMAGE_NAME:${{ inputs.sha }} \
59+
--label "git-commit=${{ inputs.sha }}" \
60+
-f continuous_integration/Dockerfile .
61+
62+
- name: Log in to container image registry
63+
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin
64+
65+
- name: Push image
66+
run: |
67+
IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME
68+
69+
# Change all uppercase to lowercase
70+
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
71+
72+
VERSION=${{ inputs.sha }}
73+
74+
docker tag $IMAGE_NAME:$VERSION $IMAGE_ID:$VERSION
75+
docker push $IMAGE_ID:$VERSION
76+
77+
- name: Copy artifacts back to the host
78+
run: |
79+
mkdir -p artifacts
80+
docker run -v "$(pwd)/artifacts:/home/coder/.artifacts" --rm -t $IMAGE_NAME:${{ inputs.sha }} copy-artifacts
81+
echo --------- DOCKER HISTORY START -----------
82+
docker history $IMAGE_NAME:${{ inputs.sha }}
83+
echo --------- DOCKER HISTORY END -----------
84+
85+
- name: Display structure of workdir
86+
run: ls -R
87+
88+
- name: Upload build artifacts
89+
uses: actions/upload-artifact@v3
90+
with:
91+
name: "legate.core-${{ inputs.build-target }}-${{ inputs.sha }}"
92+
path: artifacts

.github/workflows/gh-cleanup.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Clean up
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
build-target:
7+
required: true
8+
type: string
9+
sha:
10+
required: true
11+
type: string
12+
13+
env:
14+
IMAGE_NAME: legate.core-${{ inputs.build-target }}
15+
16+
jobs:
17+
cleanup:
18+
permissions:
19+
packages: write
20+
21+
runs-on: ubuntu-latest
22+
23+
steps:
24+
- name: Delete docker image
25+
run: |
26+
set -xeuo pipefail
27+
28+
PACKAGE_NAME=${{ env.IMAGE_NAME }}
29+
PACKAGE_VERSION_ID=$(
30+
curl -L \
31+
-H "Accept: application/vnd.github+json" \
32+
-H "Authorization: Bearer ${{ github.token }}"\
33+
-H "X-GitHub-Api-Version: 2022-11-28" \
34+
https://api.github.com/orgs/${{ github.repository_owner }}/packages/container/$PACKAGE_NAME/versions |
35+
jq '.[] | select(.metadata.container.tags[] == "${{ inputs.sha }}") | .id' -
36+
)
37+
38+
curl -L \
39+
-X DELETE \
40+
-H "Accept: application/vnd.github+json" \
41+
-H "Authorization: Bearer ${{ github.token }}"\
42+
-H "X-GitHub-Api-Version: 2022-11-28" \
43+
https://api.github.com/orgs/${{ github.repository_owner }}/packages/container/$PACKAGE_NAME/versions/$PACKAGE_VERSION_ID

.github/workflows/gh-test.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Test legate.core on GH
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
build-target:
7+
required: true
8+
type: string
9+
runs-on:
10+
required: true
11+
type: string
12+
sha:
13+
required: true
14+
type: string
15+
test-scope:
16+
required: true
17+
type: string
18+
19+
jobs:
20+
test:
21+
if: github.repository_owner == 'nv-legate'
22+
name: test-${{ inputs.build-target }}-sub-workflow
23+
runs-on: ${{ inputs.runs-on }}
24+
container:
25+
options: -u root
26+
image: ghcr.io/nv-legate/legate.core-${{ inputs.build-target }}:${{ inputs.sha }}
27+
env:
28+
PYTHONDONTWRITEBYTECODE: 1
29+
NVIDIA_VISIBLE_DEVICES: ${{ env.NVIDIA_VISIBLE_DEVICES }}
30+
31+
steps:
32+
- if: inputs.build-target == 'gpu'
33+
name: Run nvidia-smi to make sure GPU is working
34+
run: nvidia-smi
35+
36+
- name: Run legate.core test / analysis
37+
shell: su coder {0}
38+
run: run-test-or-analysis ${{ inputs.test-scope }}

.gitignore

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
*.aux
2121
*.json
2222
*.dylib
23-
legate/install_info.py
23+
install_info.py
2424
/dist
2525
/build
2626
/legion
@@ -36,4 +36,6 @@ config.mk
3636
_cmake_test_compile
3737
!cmake/versions.json
3838
legate.core.code-workspace
39-
39+
*.prof
40+
.legate-test-last-failed
41+
out/

0 commit comments

Comments
 (0)