chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,252 @@
|
||||
# Jobs that only run for developers on the `rerun` team.
|
||||
# We have to ensure that these jobs _only_ run for PRs inside the `rerun-io` organization
|
||||
# this is done using the following check, added to every job:
|
||||
# if: github.event.pull_request.head.repo.owner.login == 'rerun-io'
|
||||
# (unfortunately this does not work on the trigger or the entire `jobs` category)
|
||||
|
||||
name: Pull-Request
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types:
|
||||
- opened
|
||||
- synchronize
|
||||
|
||||
permissions: write-all
|
||||
|
||||
# These jobs use fairly short names as they are a prefix in the display hierarchy
|
||||
jobs:
|
||||
checks:
|
||||
name: Checks
|
||||
if: github.event.pull_request.head.repo.owner.login == 'rerun-io'
|
||||
uses: ./.github/workflows/reusable_checks.yml
|
||||
with:
|
||||
CONCURRENCY: pr-${{ github.event.pull_request.number }}
|
||||
CHANNEL: pr
|
||||
secrets: inherit
|
||||
|
||||
paths-filter:
|
||||
if: github.event.pull_request.head.repo.owner.login == 'rerun-io'
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
cpp_changes: ${{ steps.filter.outputs.cpp_changes }}
|
||||
docs_changes: ${{ steps.filter.outputs.docs_changes }}
|
||||
python_changes: ${{ steps.filter.outputs.python_changes }}
|
||||
rust_changes: ${{ steps.filter.outputs.rust_changes }}
|
||||
protobuf_changes: ${{ steps.filter.outputs.protobuf_changes }}
|
||||
web_changes: ${{ steps.filter.outputs.web_changes }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.ref || '' }}
|
||||
- uses: dorny/paths-filter@v3
|
||||
id: filter
|
||||
with:
|
||||
filters: |
|
||||
cpp_changes:
|
||||
# - .github/**/*.yml - this is tempting, but leads to constant rebuilds
|
||||
- crates/top/rerun_c/**/*
|
||||
- pixi.lock # maybe our build commands have changed
|
||||
- pixi.toml # maybe our build commands have changed
|
||||
- scripts/ci/**/*
|
||||
- '**/*.cpp'
|
||||
- '**/*.hpp'
|
||||
- '**/*cmake'
|
||||
- '**/CMakeLists.txt'
|
||||
|
||||
docs_changes:
|
||||
# - .github/**/*.yml - this is tempting, but leads to constant rebuilds
|
||||
- .github/actions/vercel/**/*
|
||||
- pixi.lock # maybe our build commands have changed
|
||||
- pixi.toml # maybe our build commands have changed
|
||||
- scripts/ci/*
|
||||
- 'docs/content/**/*.md'
|
||||
- 'examples/**/*.md'
|
||||
- 'examples/manifest.toml'
|
||||
|
||||
python_changes:
|
||||
# - .github/**/*.yml - this is tempting, but leads to constant rebuilds
|
||||
- pixi.lock # maybe our build commands have changed
|
||||
- pixi.toml # maybe our build commands have changed
|
||||
- scripts/ci/*
|
||||
- '**/*.py'
|
||||
- '**/*.pyi'
|
||||
- '**/requirements.txt'
|
||||
- '**/pyproject.toml'
|
||||
|
||||
rust_changes:
|
||||
# - .github/**/*.yml - this is tempting, but leads to constant rebuilds
|
||||
- Cargo.lock
|
||||
- crates/viewer/re_ui/data/**/* # parts of data are imported into the viewer and has ramifications on various tests
|
||||
- pixi.lock # maybe our build commands have changed
|
||||
- pixi.toml # maybe our build commands have changed
|
||||
- "**/*.rs"
|
||||
# wgsl is embedded into Rust binaries and should trigger tests.
|
||||
- "rerun/**/*.wgsl"
|
||||
- "**/*.toml"
|
||||
- "crates/**/*.png"
|
||||
- "tests/rust/**/*.png"
|
||||
|
||||
protobuf_changes:
|
||||
# - .github/**/*.yml - this is tempting, but leads to constant rebuilds
|
||||
- "**/**.proto"
|
||||
- pixi.lock # maybe our build commands have changed
|
||||
- pixi.toml # maybe our build commands have changed
|
||||
- scripts/ci/*
|
||||
- "**/*.toml"
|
||||
|
||||
web_changes:
|
||||
# - .github/**/*.yml - this is tempting, but leads to constant rebuilds
|
||||
- Cargo.lock
|
||||
- pixi.lock # maybe our build commands have changed
|
||||
- pixi.toml # maybe our build commands have changed
|
||||
- scripts/ci/*
|
||||
- "**/*.html"
|
||||
- "**/*.js"
|
||||
- "**/*.mjs"
|
||||
- "**/*.json"
|
||||
- "**/*.rs"
|
||||
- "**/*.toml"
|
||||
- "**/yarn.lock"
|
||||
- "crates/viewer/re_ui/data/**"
|
||||
|
||||
protobuf-checks:
|
||||
name: "Protobuf Checks"
|
||||
needs: [paths-filter]
|
||||
if: github.event.pull_request.head.repo.owner.login == 'rerun-io' && needs.paths-filter.outputs.protobuf_changes == 'true'
|
||||
uses: ./.github/workflows/reusable_checks_protobuf.yml
|
||||
with:
|
||||
CONCURRENCY: pr-${{ github.event.pull_request.number }}
|
||||
secrets: inherit
|
||||
|
||||
rust-checks:
|
||||
name: "Rust Checks"
|
||||
needs: [paths-filter]
|
||||
if: github.event.pull_request.head.repo.owner.login == 'rerun-io' && needs.paths-filter.outputs.rust_changes == 'true'
|
||||
uses: ./.github/workflows/reusable_checks_rust.yml
|
||||
with:
|
||||
CONCURRENCY: pr-${{ github.event.pull_request.number }}
|
||||
CHANNEL: main # We run the full test suite here, because we've had so many breakages
|
||||
secrets: inherit
|
||||
|
||||
python-checks:
|
||||
name: "Python Checks"
|
||||
needs: [paths-filter]
|
||||
if: github.event.pull_request.head.repo.owner.login == 'rerun-io' && needs.paths-filter.outputs.python_changes == 'true'
|
||||
uses: ./.github/workflows/reusable_checks_python.yml
|
||||
with:
|
||||
CONCURRENCY: pr-${{ github.event.pull_request.number }}
|
||||
secrets: inherit
|
||||
|
||||
cpp-tests:
|
||||
name: "C++ tests"
|
||||
needs: [paths-filter]
|
||||
if: needs.paths-filter.outputs.cpp_changes == 'true'
|
||||
uses: ./.github/workflows/reusable_checks_cpp.yml
|
||||
with:
|
||||
CONCURRENCY: pr-${{ github.event.pull_request.number }}
|
||||
CHANNEL: pr
|
||||
secrets: inherit
|
||||
|
||||
cli-build:
|
||||
name: "Rerun CLI Build"
|
||||
needs: [paths-filter]
|
||||
if: needs.paths-filter.outputs.python_changes == 'true' || needs.paths-filter.outputs.rust_changes == 'true'
|
||||
uses: ./.github/workflows/reusable_build_and_upload_rerun_cli.yml
|
||||
with:
|
||||
CONCURRENCY: pr-${{ github.event.pull_request.number }}
|
||||
PLATFORM: linux-x64
|
||||
secrets: inherit
|
||||
|
||||
# Build and test a single wheel to limit CI cost. We use linux-x64 because it's fast. linux-arm64 would also be a good
|
||||
# choice, but reusable_test_wheels.yml is broken for that target (https://github.com/rerun-io/rerun/issues/5525)
|
||||
min-wheel-build:
|
||||
name: "Minimum Wheel Build"
|
||||
needs: [cli-build, paths-filter]
|
||||
if: github.event.pull_request.head.repo.owner.login == 'rerun-io' && (needs.paths-filter.outputs.python_changes == 'true' || needs.paths-filter.outputs.rust_changes == 'true')
|
||||
uses: ./.github/workflows/reusable_build_and_upload_wheels.yml
|
||||
with:
|
||||
CONCURRENCY: pr-${{ github.event.pull_request.number }}
|
||||
MODE: "pr"
|
||||
PLATFORM: linux-x64
|
||||
WHEEL_ARTIFACT_NAME: "linux-x64-wheel-fast"
|
||||
secrets: inherit
|
||||
|
||||
min-wheel-test:
|
||||
name: "Minimum Wheel Test"
|
||||
needs: [min-wheel-build, paths-filter]
|
||||
if: github.event.pull_request.head.repo.owner.login == 'rerun-io' && (needs.paths-filter.outputs.python_changes == 'true' || needs.paths-filter.outputs.rust_changes == 'true')
|
||||
uses: ./.github/workflows/reusable_test_wheels.yml
|
||||
with:
|
||||
CONCURRENCY: pr-${{ github.event.pull_request.number }}
|
||||
PLATFORM: linux-x64
|
||||
WHEEL_ARTIFACT_NAME: "linux-x64-wheel-fast"
|
||||
FAST: true
|
||||
secrets: inherit
|
||||
|
||||
build-js:
|
||||
name: "Build rerun_js"
|
||||
needs: [paths-filter]
|
||||
if: github.event.pull_request.head.repo.owner.login == 'rerun-io' && needs.paths-filter.outputs.web_changes == 'true'
|
||||
uses: ./.github/workflows/reusable_build_js.yml
|
||||
with:
|
||||
CONCURRENCY: pr-${{ github.event.pull_request.number }}
|
||||
secrets: inherit
|
||||
|
||||
build-web:
|
||||
name: "Build web viewer"
|
||||
if: github.event.pull_request.head.repo.owner.login == 'rerun-io' && needs.paths-filter.outputs.web_changes == 'true'
|
||||
needs: [paths-filter]
|
||||
uses: ./.github/workflows/reusable_build_web.yml
|
||||
with:
|
||||
CONCURRENCY: pr-${{ github.event.pull_request.number }}
|
||||
CHANNEL: main
|
||||
secrets: inherit
|
||||
|
||||
web-test:
|
||||
name: "Web tests"
|
||||
needs: [paths-filter]
|
||||
if: github.event.pull_request.head.repo.owner.login == 'rerun-io' && needs.paths-filter.outputs.web_changes == 'true'
|
||||
uses: ./.github/workflows/reusable_web_test.yml
|
||||
with:
|
||||
CONCURRENCY: pr-${{ github.event.pull_request.number }}
|
||||
secrets: inherit
|
||||
|
||||
upload-web:
|
||||
name: "Upload Web"
|
||||
needs: [build-web]
|
||||
if: github.event.pull_request.head.repo.owner.login == 'rerun-io'
|
||||
uses: ./.github/workflows/reusable_upload_web.yml
|
||||
with:
|
||||
CONCURRENCY: pr-${{ github.event.pull_request.number }}
|
||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||
secrets: inherit
|
||||
|
||||
upload-js:
|
||||
name: "Upload JS"
|
||||
needs: [build-js]
|
||||
if: github.event.pull_request.head.repo.owner.login == 'rerun-io'
|
||||
uses: ./.github/workflows/reusable_upload_js.yml
|
||||
with:
|
||||
CONCURRENCY: pr-${{ github.event.pull_request.number }}
|
||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||
secrets: inherit
|
||||
|
||||
deploy-landing-preview:
|
||||
name: "Deploy Landing Preview"
|
||||
needs: [paths-filter]
|
||||
if: github.event.pull_request.head.repo.owner.login == 'rerun-io' && needs.paths-filter.outputs.docs_changes == 'true'
|
||||
uses: ./.github/workflows/reusable_deploy_landing_preview.yml
|
||||
with:
|
||||
CONCURRENCY: pr-${{ github.event.pull_request.number }}
|
||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||
secrets: inherit
|
||||
|
||||
check-doc-redirects:
|
||||
name: "Check Doc Redirects"
|
||||
needs: [paths-filter]
|
||||
if: github.event.pull_request.head.repo.owner.login == 'rerun-io' && needs.paths-filter.outputs.docs_changes == 'true'
|
||||
uses: ./.github/workflows/reusable_checks_doc_redirects.yml
|
||||
with:
|
||||
CONCURRENCY: pr-${{ github.event.pull_request.number }}
|
||||
secrets: inherit
|
||||
Reference in New Issue
Block a user