Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…_Scientists into main
jhudsl-robot committed Dec 1, 2023
2 parents a8dad24 + 2d32602 commit b1ac38f
Showing 17 changed files with 133 additions and 89 deletions.
3 changes: 3 additions & 0 deletions docs/no_toc/03-why-automation.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@

# Why Automation

<img src="03-why-automation_files/figure-html//1x0Cnk2Wcsg8HYkmXnXo_0PxmYCxAwzVrUQzb8DUDvTA_g104d8c58b62_46_4.png" width="100%" />

## Automation as an aid for reproducibility

All of science is built on results being reliable and continually working toward identifying more true/less wrong explanations about the world.

15 changes: 9 additions & 6 deletions docs/no_toc/404.html
Original file line number Diff line number Diff line change
@@ -126,13 +126,16 @@
</ul></li>
<li class="chapter" data-level="3" data-path="why-automation.html"><a href="why-automation.html"><i class="fa fa-check"></i><b>3</b> Why Automation</a>
<ul>
<li class="chapter" data-level="3.0.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.0.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.0.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.0.2</b> Automation as a reproducibility tool</a></li>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.1</b> Continuous integration / Continous deployment</a>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#automation-as-an-aid-for-reproducibility"><i class="fa fa-check"></i><b>3.1</b> Automation as an aid for reproducibility</a>
<ul>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.1.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.1.2</b> A real world example</a></li>
<li class="chapter" data-level="3.1.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.1.3</b> Other CI/CD services</a></li>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.1.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.1.2</b> Automation as a reproducibility tool</a></li>
</ul></li>
<li class="chapter" data-level="3.2" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.2</b> Continuous integration / Continous deployment</a>
<ul>
<li class="chapter" data-level="3.2.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.2.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.2.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.2.2</b> A real world example</a></li>
<li class="chapter" data-level="3.2.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.2.3</b> Other CI/CD services</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="4" data-path="github-actions-fundamentals.html"><a href="github-actions-fundamentals.html"><i class="fa fa-check"></i><b>4</b> GitHub Actions Fundamentals</a>
2 changes: 1 addition & 1 deletion docs/no_toc/About.md
Original file line number Diff line number Diff line change
@@ -37,7 +37,7 @@ These credits are based on our [course contributors table guidelines](https://ww
## collate en_US.UTF-8
## ctype en_US.UTF-8
## tz Etc/UTC
## date 2023-11-30
## date 2023-12-01
##
## ─ Packages ───────────────────────────────────────────────────────────────────
## package * version date lib source
17 changes: 10 additions & 7 deletions docs/no_toc/about-the-authors.html
Original file line number Diff line number Diff line change
@@ -126,13 +126,16 @@
</ul></li>
<li class="chapter" data-level="3" data-path="why-automation.html"><a href="why-automation.html"><i class="fa fa-check"></i><b>3</b> Why Automation</a>
<ul>
<li class="chapter" data-level="3.0.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.0.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.0.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.0.2</b> Automation as a reproducibility tool</a></li>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.1</b> Continuous integration / Continous deployment</a>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#automation-as-an-aid-for-reproducibility"><i class="fa fa-check"></i><b>3.1</b> Automation as an aid for reproducibility</a>
<ul>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.1.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.1.2</b> A real world example</a></li>
<li class="chapter" data-level="3.1.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.1.3</b> Other CI/CD services</a></li>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.1.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.1.2</b> Automation as a reproducibility tool</a></li>
</ul></li>
<li class="chapter" data-level="3.2" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.2</b> Continuous integration / Continous deployment</a>
<ul>
<li class="chapter" data-level="3.2.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.2.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.2.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.2.2</b> A real world example</a></li>
<li class="chapter" data-level="3.2.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.2.3</b> Other CI/CD services</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="4" data-path="github-actions-fundamentals.html"><a href="github-actions-fundamentals.html"><i class="fa fa-check"></i><b>4</b> GitHub Actions Fundamentals</a>
@@ -320,7 +323,7 @@ <h1>About the Authors</h1>
## collate en_US.UTF-8
## ctype en_US.UTF-8
## tz Etc/UTC
## date 2023-11-30
## date 2023-12-01
##
## ─ Packages ───────────────────────────────────────────────────────────────────
## package * version date lib source
15 changes: 9 additions & 6 deletions docs/no_toc/applying-github-actions-examples.html
Original file line number Diff line number Diff line change
@@ -126,13 +126,16 @@
</ul></li>
<li class="chapter" data-level="3" data-path="why-automation.html"><a href="why-automation.html"><i class="fa fa-check"></i><b>3</b> Why Automation</a>
<ul>
<li class="chapter" data-level="3.0.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.0.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.0.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.0.2</b> Automation as a reproducibility tool</a></li>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.1</b> Continuous integration / Continous deployment</a>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#automation-as-an-aid-for-reproducibility"><i class="fa fa-check"></i><b>3.1</b> Automation as an aid for reproducibility</a>
<ul>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.1.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.1.2</b> A real world example</a></li>
<li class="chapter" data-level="3.1.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.1.3</b> Other CI/CD services</a></li>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.1.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.1.2</b> Automation as a reproducibility tool</a></li>
</ul></li>
<li class="chapter" data-level="3.2" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.2</b> Continuous integration / Continous deployment</a>
<ul>
<li class="chapter" data-level="3.2.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.2.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.2.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.2.2</b> A real world example</a></li>
<li class="chapter" data-level="3.2.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.2.3</b> Other CI/CD services</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="4" data-path="github-actions-fundamentals.html"><a href="github-actions-fundamentals.html"><i class="fa fa-check"></i><b>4</b> GitHub Actions Fundamentals</a>
15 changes: 9 additions & 6 deletions docs/no_toc/automating-re-running-analyses.html
Original file line number Diff line number Diff line change
@@ -126,13 +126,16 @@
</ul></li>
<li class="chapter" data-level="3" data-path="why-automation.html"><a href="why-automation.html"><i class="fa fa-check"></i><b>3</b> Why Automation</a>
<ul>
<li class="chapter" data-level="3.0.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.0.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.0.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.0.2</b> Automation as a reproducibility tool</a></li>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.1</b> Continuous integration / Continous deployment</a>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#automation-as-an-aid-for-reproducibility"><i class="fa fa-check"></i><b>3.1</b> Automation as an aid for reproducibility</a>
<ul>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.1.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.1.2</b> A real world example</a></li>
<li class="chapter" data-level="3.1.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.1.3</b> Other CI/CD services</a></li>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.1.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.1.2</b> Automation as a reproducibility tool</a></li>
</ul></li>
<li class="chapter" data-level="3.2" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.2</b> Continuous integration / Continous deployment</a>
<ul>
<li class="chapter" data-level="3.2.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.2.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.2.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.2.2</b> A real world example</a></li>
<li class="chapter" data-level="3.2.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.2.3</b> Other CI/CD services</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="4" data-path="github-actions-fundamentals.html"><a href="github-actions-fundamentals.html"><i class="fa fa-check"></i><b>4</b> GitHub Actions Fundamentals</a>
15 changes: 9 additions & 6 deletions docs/no_toc/github-action-variables.html
Original file line number Diff line number Diff line change
@@ -126,13 +126,16 @@
</ul></li>
<li class="chapter" data-level="3" data-path="why-automation.html"><a href="why-automation.html"><i class="fa fa-check"></i><b>3</b> Why Automation</a>
<ul>
<li class="chapter" data-level="3.0.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.0.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.0.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.0.2</b> Automation as a reproducibility tool</a></li>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.1</b> Continuous integration / Continous deployment</a>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#automation-as-an-aid-for-reproducibility"><i class="fa fa-check"></i><b>3.1</b> Automation as an aid for reproducibility</a>
<ul>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.1.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.1.2</b> A real world example</a></li>
<li class="chapter" data-level="3.1.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.1.3</b> Other CI/CD services</a></li>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.1.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.1.2</b> Automation as a reproducibility tool</a></li>
</ul></li>
<li class="chapter" data-level="3.2" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.2</b> Continuous integration / Continous deployment</a>
<ul>
<li class="chapter" data-level="3.2.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.2.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.2.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.2.2</b> A real world example</a></li>
<li class="chapter" data-level="3.2.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.2.3</b> Other CI/CD services</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="4" data-path="github-actions-fundamentals.html"><a href="github-actions-fundamentals.html"><i class="fa fa-check"></i><b>4</b> GitHub Actions Fundamentals</a>
15 changes: 9 additions & 6 deletions docs/no_toc/github-actions-fundamentals.html
Original file line number Diff line number Diff line change
@@ -126,13 +126,16 @@
</ul></li>
<li class="chapter" data-level="3" data-path="why-automation.html"><a href="why-automation.html"><i class="fa fa-check"></i><b>3</b> Why Automation</a>
<ul>
<li class="chapter" data-level="3.0.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.0.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.0.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.0.2</b> Automation as a reproducibility tool</a></li>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.1</b> Continuous integration / Continous deployment</a>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#automation-as-an-aid-for-reproducibility"><i class="fa fa-check"></i><b>3.1</b> Automation as an aid for reproducibility</a>
<ul>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.1.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.1.2</b> A real world example</a></li>
<li class="chapter" data-level="3.1.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.1.3</b> Other CI/CD services</a></li>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.1.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.1.2</b> Automation as a reproducibility tool</a></li>
</ul></li>
<li class="chapter" data-level="3.2" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.2</b> Continuous integration / Continous deployment</a>
<ul>
<li class="chapter" data-level="3.2.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.2.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.2.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.2.2</b> A real world example</a></li>
<li class="chapter" data-level="3.2.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.2.3</b> Other CI/CD services</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="4" data-path="github-actions-fundamentals.html"><a href="github-actions-fundamentals.html"><i class="fa fa-check"></i><b>4</b> GitHub Actions Fundamentals</a>
17 changes: 10 additions & 7 deletions docs/no_toc/index.html
Original file line number Diff line number Diff line change
@@ -126,13 +126,16 @@
</ul></li>
<li class="chapter" data-level="3" data-path="why-automation.html"><a href="why-automation.html"><i class="fa fa-check"></i><b>3</b> Why Automation</a>
<ul>
<li class="chapter" data-level="3.0.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.0.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.0.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.0.2</b> Automation as a reproducibility tool</a></li>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.1</b> Continuous integration / Continous deployment</a>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#automation-as-an-aid-for-reproducibility"><i class="fa fa-check"></i><b>3.1</b> Automation as an aid for reproducibility</a>
<ul>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.1.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.1.2</b> A real world example</a></li>
<li class="chapter" data-level="3.1.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.1.3</b> Other CI/CD services</a></li>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.1.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.1.2</b> Automation as a reproducibility tool</a></li>
</ul></li>
<li class="chapter" data-level="3.2" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.2</b> Continuous integration / Continous deployment</a>
<ul>
<li class="chapter" data-level="3.2.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.2.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.2.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.2.2</b> A real world example</a></li>
<li class="chapter" data-level="3.2.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.2.3</b> Other CI/CD services</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="4" data-path="github-actions-fundamentals.html"><a href="github-actions-fundamentals.html"><i class="fa fa-check"></i><b>4</b> GitHub Actions Fundamentals</a>
@@ -236,7 +239,7 @@ <h1>
</div>
<div id="header">
<h1 class="title">GitHub Automation for Scientists</h1>
<p class="date"><em>November, 2023</em></p>
<p class="date"><em>December, 2023</em></p>
</div>
<div id="about-this-course" class="section level1 unnumbered">
<h1>About this Course</h1>
2 changes: 1 addition & 1 deletion docs/no_toc/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "GitHub Automation for Scientists"
date: "November, 2023"
date: "December, 2023"
site: bookdown::bookdown_site
documentclass: book
bibliography: [book.bib, packages.bib]
15 changes: 9 additions & 6 deletions docs/no_toc/introduction.html
Original file line number Diff line number Diff line change
@@ -126,13 +126,16 @@
</ul></li>
<li class="chapter" data-level="3" data-path="why-automation.html"><a href="why-automation.html"><i class="fa fa-check"></i><b>3</b> Why Automation</a>
<ul>
<li class="chapter" data-level="3.0.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.0.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.0.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.0.2</b> Automation as a reproducibility tool</a></li>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.1</b> Continuous integration / Continous deployment</a>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#automation-as-an-aid-for-reproducibility"><i class="fa fa-check"></i><b>3.1</b> Automation as an aid for reproducibility</a>
<ul>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.1.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.1.2</b> A real world example</a></li>
<li class="chapter" data-level="3.1.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.1.3</b> Other CI/CD services</a></li>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.1.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.1.2</b> Automation as a reproducibility tool</a></li>
</ul></li>
<li class="chapter" data-level="3.2" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.2</b> Continuous integration / Continous deployment</a>
<ul>
<li class="chapter" data-level="3.2.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.2.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.2.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.2.2</b> A real world example</a></li>
<li class="chapter" data-level="3.2.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.2.3</b> Other CI/CD services</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="4" data-path="github-actions-fundamentals.html"><a href="github-actions-fundamentals.html"><i class="fa fa-check"></i><b>4</b> GitHub Actions Fundamentals</a>
1 change: 1 addition & 0 deletions docs/no_toc/reference-keys.txt
Original file line number Diff line number Diff line change
@@ -13,6 +13,7 @@ t-test
sequencing-analysis
automation-for-scientific-software
why-automation
automation-as-an-aid-for-reproducibility
why-reproducibility-is-so-important.
automation-as-a-reproducibility-tool
continuous-integration-continous-deployment
15 changes: 9 additions & 6 deletions docs/no_toc/references.html
Original file line number Diff line number Diff line change
@@ -126,13 +126,16 @@
</ul></li>
<li class="chapter" data-level="3" data-path="why-automation.html"><a href="why-automation.html"><i class="fa fa-check"></i><b>3</b> Why Automation</a>
<ul>
<li class="chapter" data-level="3.0.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.0.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.0.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.0.2</b> Automation as a reproducibility tool</a></li>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.1</b> Continuous integration / Continous deployment</a>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#automation-as-an-aid-for-reproducibility"><i class="fa fa-check"></i><b>3.1</b> Automation as an aid for reproducibility</a>
<ul>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.1.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.1.2</b> A real world example</a></li>
<li class="chapter" data-level="3.1.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.1.3</b> Other CI/CD services</a></li>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.1.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.1.2</b> Automation as a reproducibility tool</a></li>
</ul></li>
<li class="chapter" data-level="3.2" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.2</b> Continuous integration / Continous deployment</a>
<ul>
<li class="chapter" data-level="3.2.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.2.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.2.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.2.2</b> A real world example</a></li>
<li class="chapter" data-level="3.2.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.2.3</b> Other CI/CD services</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="4" data-path="github-actions-fundamentals.html"><a href="github-actions-fundamentals.html"><i class="fa fa-check"></i><b>4</b> GitHub Actions Fundamentals</a>
15 changes: 9 additions & 6 deletions docs/no_toc/scientific-software-development-best-practices.html
Original file line number Diff line number Diff line change
@@ -126,13 +126,16 @@
</ul></li>
<li class="chapter" data-level="3" data-path="why-automation.html"><a href="why-automation.html"><i class="fa fa-check"></i><b>3</b> Why Automation</a>
<ul>
<li class="chapter" data-level="3.0.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.0.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.0.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.0.2</b> Automation as a reproducibility tool</a></li>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.1</b> Continuous integration / Continous deployment</a>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#automation-as-an-aid-for-reproducibility"><i class="fa fa-check"></i><b>3.1</b> Automation as an aid for reproducibility</a>
<ul>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.1.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.1.2</b> A real world example</a></li>
<li class="chapter" data-level="3.1.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.1.3</b> Other CI/CD services</a></li>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.1.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.1.2</b> Automation as a reproducibility tool</a></li>
</ul></li>
<li class="chapter" data-level="3.2" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.2</b> Continuous integration / Continous deployment</a>
<ul>
<li class="chapter" data-level="3.2.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.2.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.2.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.2.2</b> A real world example</a></li>
<li class="chapter" data-level="3.2.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.2.3</b> Other CI/CD services</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="4" data-path="github-actions-fundamentals.html"><a href="github-actions-fundamentals.html"><i class="fa fa-check"></i><b>4</b> GitHub Actions Fundamentals</a>
2 changes: 1 addition & 1 deletion docs/no_toc/search_index.json

Large diffs are not rendered by default.

15 changes: 9 additions & 6 deletions docs/no_toc/troubleshooting-github-actions.html
Original file line number Diff line number Diff line change
@@ -126,13 +126,16 @@
</ul></li>
<li class="chapter" data-level="3" data-path="why-automation.html"><a href="why-automation.html"><i class="fa fa-check"></i><b>3</b> Why Automation</a>
<ul>
<li class="chapter" data-level="3.0.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.0.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.0.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.0.2</b> Automation as a reproducibility tool</a></li>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.1</b> Continuous integration / Continous deployment</a>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#automation-as-an-aid-for-reproducibility"><i class="fa fa-check"></i><b>3.1</b> Automation as an aid for reproducibility</a>
<ul>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.1.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.1.2</b> A real world example</a></li>
<li class="chapter" data-level="3.1.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.1.3</b> Other CI/CD services</a></li>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.1.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.1.2</b> Automation as a reproducibility tool</a></li>
</ul></li>
<li class="chapter" data-level="3.2" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.2</b> Continuous integration / Continous deployment</a>
<ul>
<li class="chapter" data-level="3.2.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.2.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.2.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.2.2</b> A real world example</a></li>
<li class="chapter" data-level="3.2.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.2.3</b> Other CI/CD services</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="4" data-path="github-actions-fundamentals.html"><a href="github-actions-fundamentals.html"><i class="fa fa-check"></i><b>4</b> GitHub Actions Fundamentals</a>
43 changes: 25 additions & 18 deletions docs/no_toc/why-automation.html
Original file line number Diff line number Diff line change
@@ -126,13 +126,16 @@
</ul></li>
<li class="chapter" data-level="3" data-path="why-automation.html"><a href="why-automation.html"><i class="fa fa-check"></i><b>3</b> Why Automation</a>
<ul>
<li class="chapter" data-level="3.0.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.0.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.0.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.0.2</b> Automation as a reproducibility tool</a></li>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.1</b> Continuous integration / Continous deployment</a>
<li class="chapter" data-level="3.1" data-path="why-automation.html"><a href="why-automation.html#automation-as-an-aid-for-reproducibility"><i class="fa fa-check"></i><b>3.1</b> Automation as an aid for reproducibility</a>
<ul>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.1.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.1.2</b> A real world example</a></li>
<li class="chapter" data-level="3.1.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.1.3</b> Other CI/CD services</a></li>
<li class="chapter" data-level="3.1.1" data-path="why-automation.html"><a href="why-automation.html#why-reproducibility-is-so-important."><i class="fa fa-check"></i><b>3.1.1</b> Why reproducibility is so important.</a></li>
<li class="chapter" data-level="3.1.2" data-path="why-automation.html"><a href="why-automation.html#automation-as-a-reproducibility-tool"><i class="fa fa-check"></i><b>3.1.2</b> Automation as a reproducibility tool</a></li>
</ul></li>
<li class="chapter" data-level="3.2" data-path="why-automation.html"><a href="why-automation.html#continuous-integration-continous-deployment"><i class="fa fa-check"></i><b>3.2</b> Continuous integration / Continous deployment</a>
<ul>
<li class="chapter" data-level="3.2.1" data-path="why-automation.html"><a href="why-automation.html#continous-integration-continuous-deployment"><i class="fa fa-check"></i><b>3.2.1</b> Continous Integration / Continuous Deployment</a></li>
<li class="chapter" data-level="3.2.2" data-path="why-automation.html"><a href="why-automation.html#a-real-world-example"><i class="fa fa-check"></i><b>3.2.2</b> A real world example</a></li>
<li class="chapter" data-level="3.2.3" data-path="why-automation.html"><a href="why-automation.html#other-cicd-services"><i class="fa fa-check"></i><b>3.2.3</b> Other CI/CD services</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="4" data-path="github-actions-fundamentals.html"><a href="github-actions-fundamentals.html"><i class="fa fa-check"></i><b>4</b> GitHub Actions Fundamentals</a>
@@ -236,28 +239,32 @@ <h1>
</div>
<div id="why-automation" class="section level1" number="3">
<h1><span class="header-section-number">Chapter 3</span> Why Automation</h1>
<p><img src="03-why-automation_files/figure-html/1x0Cnk2Wcsg8HYkmXnXo_0PxmYCxAwzVrUQzb8DUDvTA_g104d8c58b62_46_4.png" width="100%" /></p>
<div id="automation-as-an-aid-for-reproducibility" class="section level2" number="3.1">
<h2><span class="header-section-number">3.1</span> Automation as an aid for reproducibility</h2>
<p>All of science is built on results being reliable and continually working toward identifying more true/less wrong explanations about the world.</p>
<p><img src="03-why-automation_files/figure-html/1x0Cnk2Wcsg8HYkmXnXo_0PxmYCxAwzVrUQzb8DUDvTA_g27a5d68b667_0_1747.png" width="100%" /></p>
<p>The process of science is first repeatability – can the same researcher with the same data get the same results? Undoubtedly in the early stages of an analysis, sometimes the results and output can be in flux. But as the analysis gets further polished and decisions are made, it should be that the same results can be obtained no matter how many times an analysis is run or re-run by the same researcher.</p>
<p>This brings us to the critical but previously historically overlooked part of the pyramid known as reproducibility. Reproducibility is what happens when another researcher can take the same data as the research #1 and get the same results. This is more difficult than it sounds at face value because data analysis requires so many decisions and variables. The order and ease of which something is re-run and the computing environment used to run the analysis are two such factors.</p>
<p>Keep in mind that consistent results (like those seen with reproducible work) are not automatically true but inconsistent results (like those seen with irreproducible work) cannot be true. In other words, <strong>correctness is not the same as reproducibility but reproducibility is a necessary aspect of correctness.</strong></p>
<p>Reproducibility is the overlooked but critical step that allows replicability to happen. Replicability is when new data is collected that extends the findings of the first study. With this new data, hopefully the same type of analysis can be done that helps the field learn even more about the concepts that were learned in the first study.</p>
<div id="why-reproducibility-is-so-important." class="section level3" number="3.0.1">
<h3><span class="header-section-number">3.0.1</span> Why reproducibility is so important.</h3>
<div id="why-reproducibility-is-so-important." class="section level3" number="3.1.1">
<h3><span class="header-section-number">3.1.1</span> Why reproducibility is so important.</h3>
<p>Reproducibility is not only important because all of science is built upon it but it also saves everyone time!</p>
<p>We can often underestimate the extent to which our work, code, and data are being used and reused by others in the scientific community. The extent to which our work is reproducible then, not only affect us and our immediate collaborates but could aid or hinder other researcher’s work in an exponential scale.</p>
<p><img src="03-why-automation_files/figure-html/1x0Cnk2Wcsg8HYkmXnXo_0PxmYCxAwzVrUQzb8DUDvTA_g280d2b56f79_0_3916.png" width="100%" /></p>
<p>In other words, if 10 researchers reuse your work and all 10 of them spent 100 hours trying to get it to work <strong>without</strong> success, that’s a lot of time to waste (10,000 hours)! But conversely, if your work was made with reproducibility aiding tools and skillsets (like automation that we are discussing in this course) then you could save other researchers loads of time! Let’s say instead 9 out of 10 of the researchers who try to reproduce your work (as opposed to running their own analysis from scratch) are able to do so in that time allotment, that saves them an insane amount of time and stress!</p>
</div>
<div id="automation-as-a-reproducibility-tool" class="section level3" number="3.0.2">
<h3><span class="header-section-number">3.0.2</span> Automation as a reproducibility tool</h3>
<div id="automation-as-a-reproducibility-tool" class="section level3" number="3.1.2">
<h3><span class="header-section-number">3.1.2</span> Automation as a reproducibility tool</h3>
<p>Automation is just one of many tools and skillsets that can aid the reproducibility of your work!</p>
<p><img src="03-why-automation_files/figure-html/1x0Cnk2Wcsg8HYkmXnXo_0PxmYCxAwzVrUQzb8DUDvTA_g27a5d68b667_0_1821.png" width="100%" /></p>
<p>Returning to those 10 researchers, if instead of having those 10 people manually try to reproduce our work every time we change it, what if we had robots do that work instead? That would not only help us re-run our results more quickly (because researchers are often busy) but also robots are much better at repetitive work. In other words, your human collaborator is great at many things but even your most reliable collaborator will not be as punctual as a robot who is programmed to do the job.</p>
<p><img src="03-why-automation_files/figure-html/1x0Cnk2Wcsg8HYkmXnXo_0PxmYCxAwzVrUQzb8DUDvTA_g27a5d68b667_0_1764.png" width="100%" /></p>
</div>
<div id="continuous-integration-continous-deployment" class="section level2" number="3.1">
<h2><span class="header-section-number">3.1</span> Continuous integration / Continous deployment</h2>
</div>
<div id="continuous-integration-continous-deployment" class="section level2" number="3.2">
<h2><span class="header-section-number">3.2</span> Continuous integration / Continous deployment</h2>
<p>Before we discuss the concept of Continous integration / Continuous deployment (often abbreviated CI/CD), let’s use an analogy.</p>
<p><img src="03-why-automation_files/figure-html/1x0Cnk2Wcsg8HYkmXnXo_0PxmYCxAwzVrUQzb8DUDvTA_g27a8d088b93_0_11.png" width="100%" /></p>
<p>Obviously we are getting at here, that generally its a good idea to check work along the way instead of waiting until something is completely finished to test it.</p>
@@ -274,8 +281,8 @@ <h2><span class="header-section-number">3.1</span> Continuous integration / Cont
<p><img src="03-why-automation_files/figure-html/1x0Cnk2Wcsg8HYkmXnXo_0PxmYCxAwzVrUQzb8DUDvTA_g286f0c8db1a_0_68.png" width="100%" /></p>
<p>This is not only true for classic “my script won’t run” bugs but also “silent” bugs – bugs where the analysis still ran to completion but perhaps the results were slightly different.</p>
<p><img src="03-why-automation_files/figure-html/1x0Cnk2Wcsg8HYkmXnXo_0PxmYCxAwzVrUQzb8DUDvTA_g286f0c8db1a_0_33.png" width="100%" /></p>
<div id="continous-integration-continuous-deployment" class="section level3" number="3.1.1">
<h3><span class="header-section-number">3.1.1</span> Continous Integration / Continuous Deployment</h3>
<div id="continous-integration-continuous-deployment" class="section level3" number="3.2.1">
<h3><span class="header-section-number">3.2.1</span> Continous Integration / Continuous Deployment</h3>
<p>A workflow that uses CI/CD principles may look like this:</p>
<p><img src="03-why-automation_files/figure-html/1x0Cnk2Wcsg8HYkmXnXo_0PxmYCxAwzVrUQzb8DUDvTA_g290614d43ec_0_277.png" width="100%" />
The idea is we use version control and build aspects of our software. Before what we’ve built is incorporated into the published version, we will stage it and test it. By staging we mean that perhaps we keep it stored on a different branch and have ways that we can play around with the <a href="https://en.wiktionary.org/wiki/beta_version">beta version</a> of the analysis or product before our most recent adds are incorporated.</p>
@@ -284,8 +291,8 @@ <h3><span class="header-section-number">3.1.1</span> Continous Integration / Con
<p>In the case of a scientific analysis, we may modify or add to the analysis, but we’ll want to test that these changes work – aka we may want to re-run the analysis before we merge it into the <code>main</code> branch or public facing version.</p>
<p>In this instance we may think of the final product as being a published manuscript as opposed to deployed website or app. But the same principles here apply. We’ll want to re-run the analysis and build tests that check if the results make sense.</p>
</div>
<div id="a-real-world-example" class="section level3" number="3.1.2">
<h3><span class="header-section-number">3.1.2</span> A real world example</h3>
<div id="a-real-world-example" class="section level3" number="3.2.2">
<h3><span class="header-section-number">3.2.2</span> A real world example</h3>
<p>Let’s bring this into the terms of a very common story for science. Let’s say you are a researcher who submitted a manuscript and a reviewer comes back and asks you to re run the analysis with a minor tweak; perhaps a parameter change.</p>
<p><img src="03-why-automation_files/figure-html/1x0Cnk2Wcsg8HYkmXnXo_0PxmYCxAwzVrUQzb8DUDvTA_g280d2b56f79_0_987.png" width="100%" /></p>
<p>If you developed your analysis without using reproducibility aiding practices and without automation, it is very likely that this seemingly simple task could take a lot of your time and brain power. Because while you don’t think anything on your computer changed since you ran this analysis 6 months ago, your computing environment and the software it uses has been changing the entire time!</p>
@@ -295,8 +302,8 @@ <h3><span class="header-section-number">3.1.2</span> A real world example</h3>
<p><img src="03-why-automation_files/figure-html/1x0Cnk2Wcsg8HYkmXnXo_0PxmYCxAwzVrUQzb8DUDvTA_g104d8c58b62_46_9.png" width="100%" /></p>
<p>By having automation keep tabs on your development, you will be less likely to be blind sided by bugs in a situation where you need to re-run your analysis (or adapt it for a new analysis!)</p>
</div>
<div id="other-cicd-services" class="section level3" number="3.1.3">
<h3><span class="header-section-number">3.1.3</span> Other CI/CD services</h3>
<div id="other-cicd-services" class="section level3" number="3.2.3">
<h3><span class="header-section-number">3.2.3</span> Other CI/CD services</h3>
<p>In this course we are focusing on using GitHub Actions for CI/CD. However, at this point we should mention that GitHub Actions is just one of many options for this. <a href="https://circleci.com/">Circle CI</a>, <a href="https://www.appveyor.com/">Appveyor</a>, and <a href="https://www.travis-ci.com/">Travis CI</a> are all also perfectly fine options to use. But if you are using GitHub already, GitHub Actions may be the easiest to start out with. However, if at a later point in your automation development journey you find that GitHub Actions may not have a feature you need, we encourage you to explore these other options and use what works best for you. These other CI/CD options definitely have some commonalities with GitHub actions so learning GitHub Actions will still give you a good start in understanding how these services work.</p>

</div>

0 comments on commit b1ac38f

Please sign in to comment.