-
Notifications
You must be signed in to change notification settings - Fork 0
#526: Migrate AWS-backed CI workflow to GitHub Actions and refactor release workflow #527
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
tkilias
merged 21 commits into
main
from
refactoring/move_ami_ci_from_codebuild_to_github
Jun 3, 2026
Merged
Changes from all commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
220f354
Refactor release workflow into package
tkilias 4f3aab8
Refactor CI workflow and AWS test layout
tkilias ae8f688
Centralize repo root detection
tkilias be88c45
Run release check in manual mode on PRs
tkilias 94709be
Use release user for AWS CI
tkilias 566a8b5
Address PR review comments
tkilias 4909456
Use dedicated CI AWS role
tkilias a37f0a5
Fix ci aws credential config
tkilias 2666d34
Update AWS policy example
tkilias 912e047
Fix release workflow env path
tkilias 494b00a
Fix docker secrets release.yml
tkilias 0a1ff80
Fix docker secrets release.yml attempt 2
tkilias a93c343
Surface release build progress by default
tkilias db4287d
Extend release OIDC session for cleanup
tkilias e6fc802
Use CD role for release workflow
tkilias 1336094
rename release command
tkilias c2fc51e
add release job name
tkilias 9252707
Stop manual release AMI publishing
tkilias 423dcbf
adapt the aws user
tkilias ad8191a
Bump aws credentials action
tkilias b151ed4
Update changelog
tkilias File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,39 +1,36 @@ | ||
| ## Running tests in the CI | ||
|
|
||
| The project has two types of CI tests: | ||
| * Unit tests and integration tests which run in a Github workflow | ||
| * Special integration tests verifying the content of the Jupyter notebook files | ||
| * A system test which runs in a AWS Codebuild | ||
| The GitHub workflow runs on each pull request and contains these test groups: | ||
| * Unit tests | ||
| * AWS-backed CI tests, which run after manual approval and provision AWS resources directly from GitHub Actions | ||
| * Integration tests, which include Docker-image build and validation checks in `test/integration` | ||
| * Notebook tests, which verify the notebook content and run in a separate workflow chain | ||
| * A system test suite that can be run locally against AWS resources | ||
|
|
||
| All these tests need to pass before the approval of a Github PR. | ||
| The Github workflow will run on each push to a branch in the Github repository. | ||
|
|
||
| However, the notebook tests and the AWS Codebuild will only run under specific conditions, e.g. manual approval or push a commit containing a special string in the commit message, see the following sections. | ||
| All required checks need to pass before a Github PR can be approved. The AWS-backed CI job stays blocked until the approval environment is granted. | ||
|
|
||
| ### Executing Jupyter Notebook Tests | ||
|
|
||
| The regular CI build will ask for confirmation (aka. "review") before executing these tests, see [ETAJ developer guide](https://github.com/exasol/exasol-test-setup-abstraction-java/blob/main/doc/developer_guide/developer_guide.md#ci-build) for details. | ||
|
|
||
| ### Executing AWS CodeBuild | ||
| ### Executing AWS-backed CI | ||
|
|
||
| The AWS-backed CI tests are executed by the GitHub Actions workflow using AWS OIDC credentials and the | ||
| `test/aws_ci/test_ci*.py` suite. | ||
|
|
||
| Use the following git commands to execute the AWS CodeBuild script: | ||
| To run these tests locally please use | ||
|
|
||
| ```shell | ||
| git commit -m "[CodeBuild]" --allow-empty && git push | ||
| export DSS_RUN_CI_TEST=true; poetry run -- pytest test/aws_ci/test_ci*.py | ||
| ``` | ||
|
|
||
| This will trigger a webhook that was installed by an AWS template into the git-Repository. | ||
| * The webhook is defined in file `exasol/ds/sandbox/templates/ci_code_build.jinja.yaml` | ||
| * and calls `aws-code-build/ci/buildspec.yaml` | ||
| * which then executes `test/codebuild/test_ci*.py` | ||
| ### Executing Integration Tests | ||
|
|
||
| The CodeBuild will take about 20 minutes to complete. | ||
|
|
||
| ## Running AWS CodeBuild locally | ||
| The integration job in the GitHub workflow runs `test/integration`, which includes tests that build and validate the | ||
| AI Lab Docker image, for example `test/integration/test_create_dss_docker_image.py`. | ||
|
|
||
| To run these tests locally please use | ||
|
|
||
| ```shell | ||
| export DSS_RUN_CI_TEST=true; poetry run -- test/codebuild/test_ci.py | ||
| poetry run -- pytest test/integration | ||
| ``` | ||
|
|
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Once we introduce the PTB here, we don't need this anymore.