diff --git a/.github/create-issue-on-failure.md b/.github/create-issue-on-failure.md new file mode 100644 index 000000000..c13edfff8 --- /dev/null +++ b/.github/create-issue-on-failure.md @@ -0,0 +1,13 @@ +--- +name: "Issue on workflow failure" +about: "Issue template for workflow failures" +title: 'Workflow "{{ env.WORKFLOW_NAME }}" failed' +labels: "build-failure" +--- + +The workflow "**{{ env.WORKFLOW_NAME }}**" failed. See logs: +https://github.com/{{ env.REPO_SLUG }}/actions/runs/{{ env.RUN_ID }} + +Commit: https://github.com/{{ env.REPO_SLUG }}/commit/{{ tools.context.sha }} + +// cc: {{ env.MENTION }} — please triage and resolve this issue diff --git a/.github/workflows/test-timely-master.yml b/.github/workflows/test-timely-master.yml new file mode 100644 index 000000000..2af4f1c35 --- /dev/null +++ b/.github/workflows/test-timely-master.yml @@ -0,0 +1,50 @@ +name: "Test build against Timely master" +on: + workflow_dispatch: + schedule: + - cron: '38 3 * * *' + +jobs: + tests: + strategy: + matrix: + os: + - ubuntu + toolchain: + - stable + name: cargo test on ${{ matrix.os }}, rust ${{ matrix.toolchain }} + runs-on: ${{ matrix.os }}-latest + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: ${{ matrix.toolchain }} + - name: Cargo check against Timely master + working-directory: timely_master + run: cargo check --all-targets + - name: Cargo test against Timely master + working-directory: timely_master + run: cargo test + + notify: + name: Notify failed build + if: failure() && github.event.pull_request == null + needs: [tests] + permissions: + contents: read + issues: write + runs-on: ubuntu-latest + steps: + # We need to checkout the repository to access the issue template + - uses: actions/checkout@v4 + - uses: JasonEtco/create-an-issue@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + WORKFLOW_NAME: ${{ github.workflow }} + REPO_SLUG: ${{ github.repository }} + RUN_ID: ${{ github.run_id }} + MENTION: '@frankmcsherry, @antiguru' + with: + filename: '.github/create-issue-on-failure.md' + update_existing: true + search_existing: open diff --git a/.gitignore b/.gitignore index 06aba01b6..fa8d85ac5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ Cargo.lock -/target +target diff --git a/timely_master/Cargo.toml b/timely_master/Cargo.toml new file mode 100644 index 000000000..3080b03a0 --- /dev/null +++ b/timely_master/Cargo.toml @@ -0,0 +1,10 @@ +# This is not part of the regular workspace. +[workspace] +members = ["differential-dataflow", "differential-dogs3"] +resolver = "2" + +[workspace.dependencies] +timely = { git = "https://github.com/TimelyDataflow/timely-dataflow", default-features = false } + +[patch.crates-io] +timely = { git = "https://github.com/TimelyDataflow/timely-dataflow" } diff --git a/timely_master/README.md b/timely_master/README.md new file mode 100644 index 000000000..da3923f89 --- /dev/null +++ b/timely_master/README.md @@ -0,0 +1,7 @@ +# Tests for Differential against Timely master + +This directory contains tests for Differential against Timely master. The tests are run in the same way as the tests +for Differential against released versions of Timely, but the crate is replaced with the `timely` crate from Github. + +Nobody should ever rely on the contents of this directory for any other purpose than testing differential +against timely master. diff --git a/timely_master/differential-dataflow/Cargo.toml b/timely_master/differential-dataflow/Cargo.toml new file mode 100644 index 000000000..9c496fb2e --- /dev/null +++ b/timely_master/differential-dataflow/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "differential-dataflow" +version = "0.0.0" +authors = ["Moritz Hoffmann "] +license = "MIT" +edition = "2021" +publish = false +description = "A fake package to test differential against timely master." + +# Point at the regular differential crate. +[lib] +path = "../../src/lib.rs" + +# Dependencies to build against timely master. Must mirror the dependencies in the main Cargo.toml. +[dependencies] +fnv="1.0.2" +serde = { version = "1.0", features = ["derive"] } +timely = { workspace = true } + +[features] +default = ["timely/getopts"] diff --git a/timely_master/differential-dogs3/Cargo.toml b/timely_master/differential-dogs3/Cargo.toml new file mode 100644 index 000000000..1fc0ecfcd --- /dev/null +++ b/timely_master/differential-dogs3/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "differential-dogs3" +version = "0.0.0" +authors = ["Moritz Hoffmann "] +license = "MIT" +edition = "2021" +publish = false +description = "A fake package to test dogsdogsdogs against timely master." + +# Point at the regular dogsdogsdogs crate. +[lib] +path = "../../dogsdogsdogs/src/lib.rs" + +# Dependencies to build against timely master. Must mirror the dependencies in the main Cargo.toml. +[dependencies] +differential-dataflow = { path = "../differential-dataflow", default-features = false } +serde = { version = "1.0", features = ["derive"] } +timely = { workspace = true }