From 2a61f9c715d7d5a170c9c667b1f51447b3ffcd8d Mon Sep 17 00:00:00 2001 From: Till Hoffmann Date: Wed, 13 Sep 2023 13:45:37 -0400 Subject: [PATCH 1/5] Add GitHub Action to test reproduction materials. --- .github/workflows/main.yaml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/workflows/main.yaml diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml new file mode 100644 index 0000000..36aabe8 --- /dev/null +++ b/.github/workflows/main.yaml @@ -0,0 +1,19 @@ +name: Reproduction Materials + +on: + push: + branches: ["main"] + pull_request: + branches: ["main"] + workflow_dispatch: + +jobs: + build: + name: Build + runs-on: "ubuntu-latest" + steps: + - uses: "actions/checkout@v3" + - name: Build Docker image. + run: docker build -t gptools . + - name: Generate figures. + run: FAST=true ./in-docker.sh cook exec figures From 5dad1c4fe8cf8c8bb2dba6acb737cd1983ee597c Mon Sep 17 00:00:00 2001 From: Till Hoffmann Date: Wed, 13 Sep 2023 13:54:08 -0400 Subject: [PATCH 2/5] Add status badge. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index af75e4e..0d82dac 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Reproduction materials for "Scalable Gaussian Process Inference with Stan" +# Reproduction materials for "Scalable Gaussian Process Inference with Stan" [![Reproduction Materials](https://github.com/tillahoffmann/gptools-reproduction-material/actions/workflows/main.yaml/badge.svg)](https://github.com/tillahoffmann/gptools-reproduction-material/actions/workflows/main.yaml) This repository comprises code and data to reproduce the results and figures in the accompanying manuscript [Scalable Gaussian Process Inference with Stan](https://doi.org/10.48550/arXiv.2301.08836). @@ -29,7 +29,7 @@ If you switch between containerized and local runtime, you may need to remove co ## Running the experiments -Figures in the manuscript were generated using the containerized runtime, and all runtime estimates below are based on a 2020 Macbook Pro with M1 chip and 16 GB of memory running macOS 13.4 (22F66). All figures can be reproduced by running `[./in-docker.sh] cook exec figures` (see below for details). +Figures in the manuscript were generated using the containerized runtime, and all runtime estimates below are based on a 2020 Macbook Pro with M1 chip and 16 GB of memory running macOS 13.4 (22F66). Figures are generated by executing Jupyter notebooks stored in markdown format. All figures can be reproduced by running `[./in-docker.sh] cook exec figures` (see below for details). ### Applications From 0fb6bb5f414f61258d9168f204802b4b52c824f9 Mon Sep 17 00:00:00 2001 From: Till Hoffmann Date: Wed, 13 Sep 2023 13:55:30 -0400 Subject: [PATCH 3/5] Remove `-it` flag for Action run. --- .github/workflows/main.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 36aabe8..c065ba2 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -15,5 +15,5 @@ jobs: - uses: "actions/checkout@v3" - name: Build Docker image. run: docker build -t gptools . - - name: Generate figures. - run: FAST=true ./in-docker.sh cook exec figures + - name: Generate figures (using ./in-docker.sh but we can't use `-it` in the Action). + run: docker run --rm -e FAST=true -v `pwd`:/workdir gptools cook exec figures From 665df8b04aceb7d090eb7f2c73ea25149d597f94 Mon Sep 17 00:00:00 2001 From: Till Hoffmann Date: Wed, 13 Sep 2023 15:04:40 -0400 Subject: [PATCH 4/5] Add step to upload results and figures as artifacts. --- .github/workflows/main.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index c065ba2..9db032c 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -17,3 +17,11 @@ jobs: run: docker build -t gptools . - name: Generate figures (using ./in-docker.sh but we can't use `-it` in the Action). run: docker run --rm -e FAST=true -v `pwd`:/workdir gptools cook exec figures + - name: Upload figures and reports as artifacts. + uses: actions/upload-artifact@v3 + with: + name: figures-reports + path: | + */*.html + */*.pdf + */*.png From d1d5d9631d9f8c31d673ee1f0fbcb79cd2a7cdc5 Mon Sep 17 00:00:00 2001 From: Till Hoffmann Date: Wed, 13 Sep 2023 16:27:52 -0400 Subject: [PATCH 5/5] Add continuous integration note to runtime environment. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 0d82dac..46581a9 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,10 @@ For any of the subsequent commands, they can be executed by either running `[the If you switch between containerized and local runtime, you may need to remove compiled Stan programs because binaries are not interoperable. Run `[./in-docker.sh] cook exec rm-compiled` to do so. +### Continuous integration + +To ensure the reproducibility of these materials, the results are also computed as the output of a GitHub Action workflow [![Reproduction Materials](https://github.com/tillahoffmann/gptools-reproduction-material/actions/workflows/main.yaml/badge.svg)](https://github.com/tillahoffmann/gptools-reproduction-material/actions/workflows/main.yaml) with the `FAST=true` flag. Figures can be obtained by selecting a workflow run and downloading the `figures-reports` artifact. + ## Running the experiments Figures in the manuscript were generated using the containerized runtime, and all runtime estimates below are based on a 2020 Macbook Pro with M1 chip and 16 GB of memory running macOS 13.4 (22F66). Figures are generated by executing Jupyter notebooks stored in markdown format. All figures can be reproduced by running `[./in-docker.sh] cook exec figures` (see below for details).