Skip to content

Commit

Permalink
Merge branch 'main' into drivers
Browse files Browse the repository at this point in the history
  • Loading branch information
aheusingfeld authored Sep 6, 2024
2 parents 01fd7b8 + 4d43b78 commit 182c07e
Show file tree
Hide file tree
Showing 33 changed files with 865 additions and 385 deletions.
69 changes: 2 additions & 67 deletions .github/workflows/build_main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,71 +10,6 @@ on:
tags:
- "[2-9][0-9][0-9][0-9].[0-9]+-rev[0-9]+"

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout Source
uses: actions/checkout@v3
with:
submodules: recursive
- name: Verify Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17

# If we're building a release, we need to set the variable RELEASE_VERSION
- name: Set Environment Variables for Release Version
if: startsWith(github.ref, 'refs/tags/')
run: echo "RELEASE_VERSION=${GITHUB_REF:10}" >> $GITHUB_ENV

- name: Execute Gradle Build
uses: gradle/gradle-build-action@v2
env:
CI: true
with:
gradle-version: wrapper
arguments: buildDocs

# release and deploy only if we're building a release
- name: Prepare Deployment
if: startsWith(github.ref, 'refs/tags/')
run: |
rm -rf ./build/tmp
cp ./docs-ext/curriculum-*.pdf ./build 2>/dev/null || :
zip -r release.zip ./build
mkdir release_dir
cp ./build/curriculum-*.pdf ./release_dir 2>/dev/null || :
mv release.zip ./release_dir/release-${{ env.RELEASE_VERSION }}.zip
- name: Create New Release
if: startsWith(github.ref, 'refs/tags/')
id: create-release
uses: ncipollo/release-action@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag: ${{ env.RELEASE_VERSION }}
name: Release ${{ env.RELEASE_VERSION }}
draft: false
prerelease: false
bodyFile: "CHANGELOG.md"
artifacts: "license-copyright/LICENSE.adoc,release_dir/*.pdf,release_dir/*.zip"
token: ${{ secrets.GITHUB_TOKEN }}
- name: Deploy
if: startsWith(github.ref, 'refs/tags/')
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
commit_message: Publish Release ${{ env.RELEASE_VERSION }}
call_workflow_build:
uses: isaqb-org/github-workflows/.github/workflows/build_main.yml@main
29 changes: 3 additions & 26 deletions .github/workflows/build_pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,31 +6,8 @@ name: CI – Pull Requests
# events but only for the main branch
on:
pull_request:

branches: [ main ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: checkout source
uses: actions/checkout@v3
with:
submodules: recursive
- name: Verify Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17
- name: Execute Gradle Build
uses: gradle/gradle-build-action@v2
with:
gradle-version: wrapper
arguments: buildDocs
jobs:
call_workflow_build_pr:
uses: isaqb-org/github-workflows/.github/workflows/build_pr.yml@main
75 changes: 2 additions & 73 deletions .github/workflows/build_releasecandidate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,77 +9,6 @@ on:
tags:
- "[2-9][0-9][0-9][0-9].[0-9]+-RC[0-9]+"

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout Source
uses: actions/checkout@v3
with:
submodules: recursive
- name: Update index.adoc
run: |
rm docs/index.adoc
mv docs/index_rc.adoc docs/index.adoc
- name: Verify Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17

# If we're building a release, we need to set the variable RELEASE_VERSION
- name: Set Environment Variables for Release Version
if: startsWith(github.ref, 'refs/tags/')
run: echo "RELEASE_VERSION=${GITHUB_REF:10}" >> $GITHUB_ENV

- name: Execute Gradle Build
uses: gradle/gradle-build-action@v2
env:
CI: true
with:
gradle-version: wrapper
arguments: buildDocs

# do the following two things only for a release!
- name: Prepare Deployment
if: startsWith(github.ref, 'refs/tags/')
run: |
rm -rf ./build/tmp
cp ./docs-ext/curriculum-*.pdf ./build 2>/dev/null || :
zip -r release.zip ./build
mkdir release_dir
cp ./build/curriculum-*.pdf ./release_dir 2>/dev/null || :
mv release.zip ./release_dir/release-${{ env.RELEASE_VERSION }}.zip
- name: Create New Release Candidate
if: startsWith(github.ref, 'refs/tags/')
id: create-release-candidate
uses: ncipollo/release-action@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag: ${{ env.RELEASE_VERSION }}
name: Release Candidate ${{ env.RELEASE_VERSION }}
draft: false
prerelease: true
bodyFile: "CHANGELOG.md"
artifacts: "license-copyright/LICENSE.adoc,release_dir/*.pdf,release_dir/*.zip"
token: ${{ secrets.GITHUB_TOKEN }}
- name: Deploy Release Candidate to GitHub Pages
if: startsWith(github.ref, 'refs/tags/')
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build
destination_dir: release-candidate
keep_files: true
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
commit_message: Publish Release Candidate ${{ env.RELEASE_VERSION }}
call_workflow_build_pr:
uses: isaqb-org/github-workflows/.github/workflows/build_releasecandidate.yml@main
10 changes: 10 additions & 0 deletions .github/workflows/update_pr_with_comment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: Comment on Pull Request

on:
workflow_run:
types: [completed]
workflows: [CI – Pull Requests]

jobs:
call_workflow_build:
uses: isaqb-org/github-workflows/.github/workflows/update_pr_with_comment.yml@main
116 changes: 28 additions & 88 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,104 +1,44 @@
import org.asciidoctor.gradle.jvm.AsciidoctorTask
import java.text.SimpleDateFormat

plugins {
id "org.asciidoctor.jvm.base" version "3.3.2"
id "org.asciidoctor.jvm.convert" version "3.3.2"
id "org.asciidoctor.jvm.pdf" version "3.3.2"
id "java"
id "application"
}

def group = "org.isaqb"
def releaseVersion = System.getenv("RELEASE_VERSION")
def localVersion = "LocalBuild"
project.version = releaseVersion == null ? localVersion : releaseVersion
def curriculumFileName = "curriculum-flex"
def versionDate = new SimpleDateFormat("yyyyMMdd").format(new Date())
def languages = ["DE", "EN"]

repositories {
mavenCentral()
}

asciidoctorj {
version = '2.5.3'
dependencies {
implementation("org.asciidoctor:asciidoctorj:2.5.10")
implementation("org.asciidoctor:asciidoctorj-pdf:2.3.9")
}

ext {
today = new Date()
versionDate = new SimpleDateFormat("yyyyMMdd").format(today)

releaseVersion = System.getenv("RELEASE_VERSION")
localVersion = "LocalBuild"
project.version = releaseVersion == null ? localVersion : releaseVersion;

curriculumFileName = "curriculum-flex"
addSuffixToCurriculum = { suffix ->
for (extension in ["html", "pdf"]) {
File source = new File("${buildDir}/${curriculumFileName}.${extension}")
File target = new File("${buildDir}/${curriculumFileName}${suffix}.${extension}")

source.renameTo(target)
}
}
application {
mainClass.set("org.isaqb.asciidoc.Main")
applicationDefaultJvmArgs = [
"""-DprojectVersion=${project.version}""",
"""-DcurriculumFileName=${curriculumFileName}""",
"""-DversionDate=${versionDate}""",
"""-Dlanguages=${languages.join(',')}""",
"""--add-opens""", """java.base/sun.nio.ch=ALL-UNNAMED""",
"""--add-opens""", """java.base/java.io=ALL-UNNAMED"""]
}

apply from: 'scripts/includeLearningObjectives.gradle'



class RenderCurriculumTask extends AsciidoctorTask {
@Inject
RenderCurriculumTask(WorkerExecutor we, String curriculumFileName, String versionDate, String language) {
super(we)

forkOptions {
jvmArgs "--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED", "--add-opens", "java.base/java.io=ALL-UNNAMED"
}


sourceDir = new File("./docs/")
baseDir = new File ("./docs/")
sources {
include "index.adoc"
include "${curriculumFileName}.adoc"
}
outputDir = new File("./build/")
outputOptions {
separateOutputDirs = false
backends 'pdf', 'html5'
}

def fileVersion = project.version.trim() + "-" + language

attributes = [
'icons' : 'font',
'version-label' : '',
'revnumber' : fileVersion,
'revdate' : versionDate,
'document-version' : fileVersion + "-" + versionDate,
'currentDate' : versionDate,
'language' : language,
'curriculumFileName': curriculumFileName,
'debug_adoc' : false,
'pdf-stylesdir' : '../pdf-theme/themes',
'pdf-fontsdir' : '../pdf-theme/fonts',
'pdf-style' : 'isaqb',
'stylesheet' : '../html-theme/adoc-github.css',
'stylesheet-dir' : '../html-theme'
]
}
}

task buildDocs {
group 'Documentation'
description 'Grouping task for generating all languages in several formats'
dependsOn "includeLearningObjectives", "renderDE", "renderEN"
}

task renderDE(type: RenderCurriculumTask,
constructorArgs: [curriculumFileName, versionDate, "DE"]) {
doLast {
addSuffixToCurriculum("-de")
}
}

task renderEN(type: RenderCurriculumTask,
constructorArgs: [curriculumFileName, versionDate, "EN"]) {
doLast {
addSuffixToCurriculum("-en")
}
tasks.register('buildDocs') {
description = 'Grouping task for generating all languages in several formats'
group = 'documentation'
dependsOn "includeLearningObjectives", "run"
}

apply from: 'scripts/includeLearningObjectives.gradle'

defaultTasks "buildDocs"
11 changes: 7 additions & 4 deletions docs/00b-basics/01-what-to-expect-of-this-module.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,19 @@
=== Was vermittelt das Modul „{curriculum-short}“?

Das Modul {curriculum-name} zeigt, wie man mit modernen
Architektur-Ansätzen besonders flexible Systeme umsetzen kann.
Architektur-Ansätzen besonders flexible Systeme umsetzen kann.
Hierbei beginnen wir bei Qualitätszielen, die flexible, verteilte Systeme überhaupt motivieren, betrachten Modularisierungs-Optionen und Architektur-Konzepte. Die Teilnehmer:innen lernen wie Kommunikationsstrukturen zwischen Teams und deren Organisation ihre Architekturentscheidungen entscheidend beeinflussen und wie sie diese Macro-Architektur steuern können.

Am Ende des Moduls kennen die Teilnehmerinnen und Teilnehmer Grundlagen von Microservices und Self-contained Systems und können Systeme auf Basis dieser Architektur-Konzepte entwerfen. Dabei können sie auch eine sinnvolle fachliche Aufteilung wie auch Konzepte für Continuous Delivery und Betrieb dieser Systeme erstellen.
Am Ende des Moduls kennen die Teilnehmer:innen Grundlagen von Microservices und Self-contained Systems und können Systeme auf Basis dieser Architektur-Konzepte entwerfen. Dabei können sie auch eine sinnvolle fachliche Aufteilung vorschlagen, die Erkenntnisse aus Konzepten wie Continuous Delivery und nachhaltigem Service-Betrieb berücksichtigt.

// end::DE[]

// tag::EN[]
=== What does the module “{curriculum-short}” convey?

The module presents {curriculum-short} to the participants …
At the end of the module, the participants know … and are able to …
The module presents {curriculum-short} to the participants how to build very flexible systems with modern architecture approaches. We start by looking at which quality goals actually motivate a flexible, distributed architecture at all. We also review different options for modularization and the architectural concepts behind them. The participants learn how communication structures between teams and their organisation impacts their architecture decisions and how to organize macro architecture decision making.

At the end of the module, the participants know the basics of architecture styles like microservices and self-contained systems and are able to design systems based on these concepts. They will be able to suggest a meaningful business decomposition that includes insights stemming from the concepts of Continuous Delivery and sustainable service operations.

// end::EN[]

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// tag::DE[]
=== Struktur des Lehrplans und empfohlene zeitliche Aufteilung

[cols="<,>", options="header"]
[cols="<,>,>", options="header"]
|===
| Inhalt
| Empfohlene Mindestdauer (min)
Expand Down Expand Up @@ -53,7 +53,7 @@ Die Ausgestaltung der Beispiele und Übungen sind in diesem Lehrplan nicht vorge
// tag::EN[]
=== Curriculum Structure and Recommended Durations

[cols="<,>", options="header"]
[cols="<,>,>", options="header"]
|===
| Content
| Recommended duration (minutes)
Expand Down
Loading

0 comments on commit 182c07e

Please sign in to comment.