diff --git a/.gitea/workflows/docker-build-push.yml b/.gitea/workflows/docker-build-push.yml index 230d328..f666f67 100644 --- a/.gitea/workflows/docker-build-push.yml +++ b/.gitea/workflows/docker-build-push.yml @@ -81,11 +81,12 @@ jobs: if [ -n "${DOCKER_UI_URL:-}" ] && [ -n "${VERSION:-}" ]; then CONTAINER_URL="${DOCKER_UI_URL}/${DOCKER_IMAGE_NAME}/${VERSION}" fi - bash .ci/scripts/report-status.sh success "Docker build & push ${VERSION} OK" ci-docker-build-push "" "$CONTAINER_URL" - - - name: Report status FAILURE - if: failure() - run: bash .ci/scripts/report-status.sh failure "Docker build & push ${VERSION} FAILED" ci-docker-build-push + DIR=$(dirname "${DOCKERFILE}") + if [ "$DIR" != "." ]; then + bash .ci/scripts/report-status.sh success "${DIR}: Docker push ${VERSION}" "${DIR}-ci-docker-build-push" "" "$CONTAINER_URL" + else + bash .ci/scripts/report-status.sh success "Docker push ${VERSION}" ci-docker-build-push "" "$CONTAINER_URL" + fi tag-commit: runs-on: ubuntu-latest diff --git a/.gitea/workflows/helm-build-push.yml b/.gitea/workflows/helm-build-push.yml index bec4aab..f6b7501 100644 --- a/.gitea/workflows/helm-build-push.yml +++ b/.gitea/workflows/helm-build-push.yml @@ -76,7 +76,11 @@ jobs: run: | CHART_NAME=$(grep '^name:' "${CHART_PATH}/Chart.yaml" | awk '{print $2}') UI_URL="${HELM_UI_URL}/${CHART_NAME}/${VERSION}" - bash .ci/scripts/report-status.sh success "Helm chart ${VERSION}" ci-helm-build-push "" "$UI_URL" + if [ "${CHART_PATH}" != "." ] && [ -n "${CHART_PATH}" ]; then + bash .ci/scripts/report-status.sh success "${CHART_PATH}: Helm push ${VERSION}" "${CHART_PATH}-ci-helm-build-push" "" "$UI_URL" + else + bash .ci/scripts/report-status.sh success "Helm push ${VERSION}" ci-helm-build-push "" "$UI_URL" + fi tag-commit: runs-on: ubuntu-latest diff --git a/skills/consumer-pipelines/REFERENCE.md b/skills/consumer-pipelines/REFERENCE.md index 58ae7ce..9e11d46 100644 --- a/skills/consumer-pipelines/REFERENCE.md +++ b/skills/consumer-pipelines/REFERENCE.md @@ -202,7 +202,16 @@ jobs: - name: Report if: always() - run: bash .ci/scripts/ci-report.sh "" ${{ job.status }} + run: | + bash .ci/scripts/ci-report.sh " test report" ${{ job.status }} +``` + +Monorepossa context ja description sisältävät komponentin nimen: +```yaml + - name: Report + if: always() + run: | + bash .ci/scripts/ci-report.sh ": test report" . ${{ job.status }} ``` **Usean runnerin cache-ongelma:** Jos eri kerroilla käynnistyy eri runnereita, @@ -218,6 +227,7 @@ niillä voi olla eri versio `latest`-imagen digesteistä. Ratkaisuja: ### Taso 1: Ei jälkikäsittelyä +Single repo: ```yaml - name: Run tests shell: bash @@ -227,11 +237,27 @@ niillä voi olla eri versio `latest`-imagen digesteistä. Ratkaisuja: - name: Report if: always() - run: bash .ci/scripts/ci-report.sh "" ${{ job.status }} + run: | + bash .ci/scripts/ci-report.sh " test report" ${{ job.status }} +``` + +Monorepo: +```yaml +- name: Run tests + shell: bash + run: | + mkdir -p "reports/" + + +- name: Report + if: always() + run: | + bash .ci/scripts/ci-report.sh ": test report" . ${{ job.status }} ``` ### Taso 2: Jälkikäsittely tarvitaan +Single repo: ```yaml - name: Run tests shell: bash @@ -249,7 +275,30 @@ niillä voi olla eri versio `latest`-imagen digesteistä. Ratkaisuja: - name: Report if: always() - run: bash .ci/scripts/ci-report.sh "" ${{ job.status }} + run: | + bash .ci/scripts/ci-report.sh " test report" ${{ job.status }} +``` + +Monorepo: +```yaml +- name: Run tests + shell: bash + run: | + mkdir -p "reports/" + > "reports//results.txt" 2>&1 + +- name: Post-process coverage + if: always() + run: /coverage/-hakemistoon> + +- name: Post-process test report + if: always() + run: + +- name: Report + if: always() + run: | + bash .ci/scripts/ci-report.sh ": test report" . ${{ job.status }} ``` ### Väärin vs oikein — yksi asia per step @@ -273,7 +322,16 @@ niillä voi olla eri versio `latest`-imagen digesteistä. Ratkaisuja: - name: Report if: always() - run: bash .ci/scripts/ci-report.sh "Helm kubeconform" helm-test kubeconform ${{ job.status }} + run: | + bash .ci/scripts/ci-report.sh "Helm kubeconform" helm-test kubeconform ${{ job.status }} +``` + +Monorepossa: +```yaml +- name: Report + if: always() + run: | + bash .ci/scripts/ci-report.sh ": Helm kubeconform" .helm-test kubeconform ${{ job.status }} ``` ### Väärin vs oikein — post-process @@ -509,6 +567,15 @@ jobs: suites: ' ' ``` +**Commit status -kontekstit monorepossa:** Testiraporttien `ci-report.sh`-kutsussa +context ja description sisältävät komponentin nimen: +```yaml + - name: Report + if: always() + run: | + bash .ci/scripts/ci-report.sh ": Unit test report" .unit-tests bats ${{ job.status }} +``` + ### Version elinkaari per komponentti `GIT_TAG_PREFIX` takaa että eri komponenttien versiohistoria pysyy erillään. diff --git a/skills/consumer-pipelines/SKILL.md b/skills/consumer-pipelines/SKILL.md index 542fc0c..e860a50 100644 --- a/skills/consumer-pipelines/SKILL.md +++ b/skills/consumer-pipelines/SKILL.md @@ -158,6 +158,35 @@ Tiedostonimet `.gitea/workflows/`-kansiossa noudattavat yhtenäistä rakennetta: Single repossa `` jätetään pois. Monorepossa prefiksi pitää komponentin tiedostot yhdessä. +### 6.1 Commit status -nimeäminen + +`ci-report.sh`-kutsun `description` (2. argumentti) ja `context` (3. argumentti) +noudattavat seuraavaa kaavaa: + +**Single repo:** +``` +context: (esim. unit-tests, acc-tests) +description: test report (esim. Unit test report) +``` + +**Monorepo:** +``` +context: . (esim. library.unit-tests) +description: : test report (esim. Library: Unit test report) +``` + +> Gitea YAML: `run:` laita lainausmerkeillä `run: |`-blockiin — Gitea ei tue lainausmerkkejä yhden rivin `run:`-komennoissa. +> +> ```yaml +> - name: Report +> if: always() +> run: | +> bash .ci/scripts/ci-report.sh ": test report" . ${{ job.status }} +> ``` + +Build/push-status (Docker, Helm) on providerin hallussa — consumer ei vaikuta +niiden nimeämiseen. + ## 7. Artifact-kuri Gitea Actionsin `upload-artifact` jättää pysyvän tiedoston. Artifakteja ei käytetä