diff --git a/slides/2023-11-30/160_gitlab_ci/040_image/slides.md b/slides/2023-11-30/160_gitlab_ci/040_image/slides.md index 7fb97c28..5abbc2f7 100644 --- a/slides/2023-11-30/160_gitlab_ci/040_image/slides.md +++ b/slides/2023-11-30/160_gitlab_ci/040_image/slides.md @@ -8,10 +8,14 @@ ## Image -Choose which container image [](https://docs.gitlab.com/ee/ci/yaml/#image) is used for your job +Without `image` you rely on the default container image Our runner configuration defaults to `alpine` [](https://hub.docker.com/_/alpine) [](https://alpinelinux.org/) +Choose which container `image` [](https://docs.gitlab.com/ee/ci/yaml/#image) is used for your jobs + +Each job can have its own container image + Use official images [](https://hub.docker.com/search?q=&image_filter=official) Do not use community images diff --git a/slides/2023-11-30/160_gitlab_ci/050_defaults/slides.md b/slides/2023-11-30/160_gitlab_ci/050_defaults/slides.md index d78b641b..ff814bff 100644 --- a/slides/2023-11-30/160_gitlab_ci/050_defaults/slides.md +++ b/slides/2023-11-30/160_gitlab_ci/050_defaults/slides.md @@ -17,6 +17,16 @@ Apply settings to all jobs using `default` [](https://docs.gitlab.com/ee/ci/yaml - `after_script` - and some more we will explore later +### Example + +```yaml +default: + image: alpine + before_script: echo "Welcome to this job" +job_name: + #... +``` + ### Hands-On See chapter [Variables](/hands-on/20231130/050_defaults/exercise/) diff --git a/slides/2023-11-30/160_gitlab_ci/060_artifacts/slides.md b/slides/2023-11-30/160_gitlab_ci/060_artifacts/slides.md index 3bf096ae..332da797 100644 --- a/slides/2023-11-30/160_gitlab_ci/060_artifacts/slides.md +++ b/slides/2023-11-30/160_gitlab_ci/060_artifacts/slides.md @@ -30,12 +30,6 @@ Add untracked files --- -## Hands-On - -See chapter [Artifacts](/hands-on/20231130/060_artifacts/exercise/) - ---- - ## Dependencies Jobs can restrict which job artifacts to receive @@ -85,3 +79,9 @@ job_name2: ``` `dependencies` as well as `needs` limit from which jobs they are consumed + +--- + +## Hands-On + +See chapter [Artifacts](/hands-on/20231130/060_artifacts/exercise/) diff --git a/slides/2023-11-30/160_gitlab_ci/090_unit_tests/slides.md b/slides/2023-11-30/160_gitlab_ci/090_unit_tests/slides.md index 47787899..e0e8bc4b 100644 --- a/slides/2023-11-30/160_gitlab_ci/090_unit_tests/slides.md +++ b/slides/2023-11-30/160_gitlab_ci/090_unit_tests/slides.md @@ -8,13 +8,13 @@ ## Unit Tests -GitLab is able to consume JUnit formatted reports [](https://docs.gitlab.com/ee/ci/testing/unit_test_reports.html) +GitLab is able to consume JUnit XML formatted reports [](https://docs.gitlab.com/ee/ci/testing/unit_test_reports.html) -Reports must be prepared and defined as a special type of artifact +Reports must be defined as a special type of artifact Reports will be displayed in the summary view of a pipeline -The following example is based on [this one](https://docs.gitlab.com/ee/ci/testing/unit_test_report_examples.html#go): +The following example was taken from the [official one](https://docs.gitlab.com/ee/ci/testing/unit_test_report_examples.html#go): ```yaml golang: diff --git a/slides/2023-11-30/160_gitlab_ci/100_environments/slides.md b/slides/2023-11-30/160_gitlab_ci/100_environments/slides.md index d71e0adf..e38ddba1 100644 --- a/slides/2023-11-30/160_gitlab_ci/100_environments/slides.md +++ b/slides/2023-11-30/160_gitlab_ci/100_environments/slides.md @@ -14,6 +14,8 @@ CI variables can be scoped to environments Environments are auto-created by the first job using them +### Our environments + Your demo environment has hidden services ![](160_gitlab_ci/100_environments/webdav.drawio.svg) @@ -22,7 +24,7 @@ WebDAV endpoints emulate deployment targets --- -## Hands-On (1/2) +## Hands-On See chapter [Environments](/hands-on/20231130/100_environments/exercise/) @@ -35,10 +37,6 @@ Branches can be used to represent target environments: - `dev` for development branch - `live` for production code -### Hands-On (2/2) - -See chapter [Environments](/hands-on/20231130/100_environments/exercise/) - --- ## Pro tip: Disposable environments @@ -70,4 +68,4 @@ vscode-cleanup: script: echo DESTROY ``` - \ No newline at end of file + diff --git a/slides/2023-11-30/160_gitlab_ci/110_triggers/slides.md b/slides/2023-11-30/160_gitlab_ci/110_triggers/slides.md index d4ac7a34..d1390c7f 100644 --- a/slides/2023-11-30/160_gitlab_ci/110_triggers/slides.md +++ b/slides/2023-11-30/160_gitlab_ci/110_triggers/slides.md @@ -36,10 +36,6 @@ The following pipeline is downstream ![](160_gitlab_ci/110_triggers/upstream_downstream.drawio.svg) -### Hands-On: Trigger tokens - -See chapter [Triggers](/hands-on/20231130/110_triggers/exercise/) - --- ## Heads-up for trigger tokens @@ -61,19 +57,26 @@ Trigger owner must be able to either... ## Multi-project pipelines +Modern alternative to trigger tokens + Launch pipeline in separate project [](https://docs.gitlab.com/ee/ci/pipelines/multi_project_pipelines.html) Use the `trigger` keyword [](https://docs.gitlab.com/ee/ci/yaml/index.html#trigger) -### Hands-On +### Example -See chapter [Triggers](/hands-on/20231130/110_triggers/exercise/) +```yaml +job_name: + trigger: + project: + branch: main +``` + +`trigger.branch` is optional --- -## Hands-On: Parent-child pipelines - -See chapter [Triggers](/hands-on/20231130/110_triggers/exercise/) +## Parent-child pipelines Child pipeline can be made from multiple files @@ -81,7 +84,26 @@ Child pipeline can be made from multiple files Use `project`/`ref`/`file` for files in other repositories -Included file can also be generated before job start [](https://docs.gitlab.com/ee/ci/pipelines/downstream_pipelines.html#dynamic-child-pipelines) +### Example + +```yaml +job_name: + trigger: + include: + +job_name2: + trigger: + include: + - project: + ref: main + file: +``` + +--- + +## Hands-On + +See chapter [Triggers](/hands-on/20231130/110_triggers/exercise/) --- @@ -128,7 +150,7 @@ job_name: ## Dynamic includes -Include can be generated on-demand: +Included file can also be generated before job start [](https://docs.gitlab.com/ee/ci/pipelines/downstream_pipelines.html#dynamic-child-pipelines) ```yaml generate: diff --git a/slides/2023-11-30/160_gitlab_ci/120_templates/slides.md b/slides/2023-11-30/160_gitlab_ci/120_templates/slides.md index acbc8687..c19908f9 100644 --- a/slides/2023-11-30/160_gitlab_ci/120_templates/slides.md +++ b/slides/2023-11-30/160_gitlab_ci/120_templates/slides.md @@ -26,9 +26,34 @@ See also the official development guide for templates [](https://docs.gitlab.com --- -## Templates +## Templates 1/ + +The following pipeline... + +```yaml +.template: + image: alpine + script: pwd + +job_name: + extends: .template +``` + +...result in the following job: + +```yaml +job_name: + image: alpine + script: pwd +``` -Example: +Keywords from `job_name` are applied after keywords from `.template` + +--- + +## Templates 2/ + +The following pipeline... ```yaml .template: @@ -37,11 +62,54 @@ Example: job_name: extends: .template + script: ls -l +``` + +...result in the following job: + +```yaml +job_name: + image: alpine + script: ls -l ``` Keywords from `job_name` are applied after keywords from `.template` -### Hands-On +--- + +## Templates 3/3 + +The following pipeline... + +```yaml +.template: + image: alpine + variables: + foo: bar + script: pwd + +job_name: + extends: .template + variables: + bar: baz +``` + +...result in the following job: + +```yaml +job_name: + image: alpine + variables: + foo: bar + bar: baz + script: pwd +``` + +Variables are merged! + +--- + +## Hands-On See chapter [Templates](/hands-on/20231130/120_templates/exercise/)