Skip to content

Commit

Permalink
adding small start; fix typo
Browse files Browse the repository at this point in the history
  • Loading branch information
j-i-l committed Oct 31, 2024
1 parent b23fd07 commit 097a8bc
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 2 deletions.
1 change: 1 addition & 0 deletions source/content/embrace_automation/considerations/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
```{toctree}
:maxdepth: 1
./start_small
./own_docker
./debugging
```
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
### Create your own Docker images

{% if page %}
Both **GitLab** and **GitHub** leverage dcker extensively in their automation processes, and they make it easy for you to do create and distribute your own Docker images.
Both **GitLab** and **GitHub** leverage Docker extensively in their automation processes, and they make it easy for you to do create and distribute your own Docker images.

By creating custom Docker images, you not only establish isolated and reproducible environments for your projects but also drastically reduce the runtime of your automation scripts. This is because all installation and configuration of the environment can be completed during the image creation process.

Expand All @@ -16,6 +16,6 @@ _Read more about creating Docker images on [<i class="fab fa-gitlab"></i> ](http
- **All installation and configuration** can be completed during the Docker image creation process.
- **GitLab** and **GitHub** provide straightforward tools for creating and distributing your own Docker images.
:::{tip}
For a detailed examle of this approach, check out [furrer-lab/r-containers](https://github.com/furrer-lab/r-containers).
For a full-fledged example of this approach, check out [furrer-lab/r-containers](https://github.com/furrer-lab/r-containers).
:::
{% endif %}
29 changes: 29 additions & 0 deletions source/content/embrace_automation/considerations/start_small.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
### Start Small!

{% if page %}
CI/CD functionalities in **GitLab** and **GitHub** are excellent tools for speeding up, standardizing, and streamlining a variety of tasks.
However, adding complexity through pipelines or workflows can quickly increase the intricacy of your scripts.
Before you know it, you may find yourself navigating a maze of dependencies, conditions, and edge cases that can consume a significant amount of time to resolve and manage.

Therefore, before implementing any automation procedures, evaluate your workflow design and ensure it is as simple and straightforward as possible.
The fewer dependencies, the better!

Another important consideration is to avoid having multiple "sources of truth."
This concept may seem unusual at first, but adhering to the principle that any parameterization (such as the version of a dependency) should be defined in only one location—especially when used across multiple stages in a workflow or pipeline—can greatly simplify management.

Finally, even when starting small, it's essential to evaluate the structure of your project or repository before embarking on your automation journey.
The various features and configurations offered by remote services are designed to work well with standard project structures for languages like Python, R, Scala, etc.
Following typical project setups is likely to facilitate the use of automation functionalities, while maintaining custom folder structures and dependency patterns may lead to complications.

{% else %}
**Complex pipelines and workflows** can quickly increase the intricacy of your automation scripts.

- **Starting with simple, toy-like pipelines** allows you to experiment and learn without overwhelming complexity.
- **Simplicity in workflow design** is crucial; ensure it is as straightforward as possible.
- **Fewer dependencies** lead to easier management and maintenance.
- **Avoiding multiple sources of truth** helps simplify management.
- **Parameterization** (like dependency versions) should be defined in only one location, especially when used across multiple stages in a workflow or pipeline.
- **Evaluating project structure** before automation is essential.
- **Standard project setups** for languages like Python, R, and Scala facilitate the use of automation functionalities, while custom structures may lead to complications.
{% endif %}

2 changes: 2 additions & 0 deletions source/content/embrace_automation/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
```
```{include} ./considerations/index.md
```
```{include} ./considerations/start_small.md
```
```{include} ./considerations/own_docker.md
```
```{include} ./considerations/debugging.md
Expand Down

0 comments on commit 097a8bc

Please sign in to comment.