Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/workflows/merge-gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,15 @@ jobs:
permissions:
contents: read

fast-report:
name: Fast Report
needs:
- run-fast-checks
uses: ./.github/workflows/report.yml
secrets: inherit
permissions:
contents: read

approve-run-slow-tests:
name: Approve Running Slow Tests?
runs-on: "ubuntu-24.04"
Expand Down
7 changes: 6 additions & 1 deletion doc/changes/unreleased.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,17 @@

This release includes an update of `action/upload-pages-artifact` from v4 to v5.0.0. With this
change, now all actions used in the PTB run with Node.js 24. This is important as support
for Node.js 20 reaches it end-of-life in April of 2026 and support for it in GitHub will end in
for Node.js 20 reaches it end-of-life in April 2026 and support for it in GitHub will end in
September 2026; for more details, see GitHub's [deprecation notice](https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/).

The `report.yml` is also called after the `checks.yml` completes. This allows users
to get linting, security, and unit test coverage before running the `slow-checks.yml`,
as described in the [Pull Request description](https://exasol.github.io/python-toolbox/main/user_guide/features/github_workflows/index.html#pull-request).

## Refactoring

* #764: Updated `action/upload-pages-artifact` from v4 to [v5](https://github.com/actions/upload-pages-artifact/releases/tag/v5.0.0)
* #768: Updated `merge-gate.yml` to execute the `report.yml` after the `checks.yml` completes

## Bugfix

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Branch Protection
-----------------

The best and most maintainable way to have solid branch protection
(:code:`Settings/Branches/main`) is to require the workflow :code:`merge-gate / Allow
(:code:`Settings/Branches/main`) is to require the workflow :code:`Merge Gate / Allow
Merge` to pass successfully. Additionally, if it makes sense for your project,
you can further require that ``SonarCloud Code Analysis`` passes.

Expand Down
54 changes: 35 additions & 19 deletions doc/user_guide/features/github_workflows/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -112,31 +112,47 @@ When configured as described on :ref:`github_project_configuration`, the
workflows, like ``slow-checks.yml``. This allows developers to update their pull
request more often and to only periodically run the more time-expensive tests.

The `report.yml` is called twice:
Comment thread
ArBridgeman marked this conversation as resolved.
#. after the steps in `checks.yml` successfully finish - this allows developers
to get faster feedback for linting, security, and unit test coverage.
#. after the steps in `slow-checks.yml` successfully finish - this gives developers an
overview of the total coverage, as well as the information provided from running
the `checks.yml`

In both scenarios, the results are posted in the PR and made available on Sonar's UI.
Note that Sonar does not keep historical information, so it will only show the latest
information provided to it.

If one of the jobs in the chain fails (or if ``run-slow-tests`` is not approved),
then the subsequent jobs will not be started.

.. mermaid::

graph TD
%% Workflow Triggers (Solid Lines)
ci[ci.yml] --> merge-gate[merge-gate.yml]
ci --> metrics[report.yml]

merge-gate --> fast-checks[checks.yml]
merge-gate --> run-slow-tests[run-slow-tests]
run-slow-tests -.->|needs| slow-checks[slow-checks.yml]

%% Dependencies / Waiting (Dotted Lines)
fast-checks -.->|needs| approve-merge[approve-merge]
slow-checks -.->|needs| approve-merge

%% Final Dependency
approve-merge -.->|needs| metrics

%% Visual Styling to distinguish jobs
style approve-merge fill:#fff,stroke:#333,stroke-dasharray: 5 5
style run-slow-tests fill:#fff,stroke:#333,stroke-dasharray: 5 5

%% Define Nodes
ci_job[ci.yml]
gate[merge-gate.yml]
checks[checks.yml]
slow_run[run-slow-tests]
slow_checks[slow-checks.yml]
report[report.yml]
approver[approve-merge]

%% Workflow Triggers
ci_job --> gate
gate --> checks
gate --> slow_run
slow_run -.->|needs| slow_checks

%% Dependencies
checks -.->|needs| report
checks -.->|needs| approver
slow_checks -.->|needs| approver
approver -.->|needs| report

%% Styling
style approver fill:#fff,stroke:#333,stroke-dasharray: 5 5
style slow_run fill:#fff,stroke:#333,stroke-dasharray: 5 5

.. _pr_merge_yml:

Expand Down
9 changes: 9 additions & 0 deletions exasol/toolbox/templates/github/workflows/merge-gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,15 @@ jobs:
permissions:
contents: read

fast-report:
name: Fast Report
needs:
- run-fast-checks
uses: ./.github/workflows/report.yml
secrets: inherit
permissions:
contents: read

approve-run-slow-tests:
name: Approve Running Slow Tests?
runs-on: "(( os_version ))"
Expand Down
Loading