Skip to content
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

DAT-1565 Investigate LocalStack for automated testing of AWS Platforms #622

Merged
merged 76 commits into from
Jan 12, 2024

Conversation

jandroav
Copy link
Contributor

jandroav added 14 commits September 22, 2023 10:57
feat(aws.yml): add setup for Python and LocalStack to enable testing with LocalStack environment
…KEN for consistency and security

feat(aws.yml): add Terraform commands to initialize and apply changes in the localstack directory
feat(localstack/main.tf): add Terraform module for test automation in AWS
The .terraform.lock.hcl file was deleted as it is automatically maintained by "terraform init" and manual edits may be lost in future updates.
…fstate* files to prevent them from being tracked in the repository
…mmand to properly initialize and apply Terraform configuration
…pp_terraform_io to match the secret name in GitHub secrets for improved clarity and consistency
…apply command in the localstack job to configure the test environment
…for the LocalStack job

chore(aws.yml): remove unnecessary variable assignment for the tflocal apply command in the LocalStack job
…er versions and remote state storage

The `versions.tf` file is added to the `localstack` directory. This file is used to define the required provider versions for Terraform. In this case, the `aws` provider is set to version 5.17.0, the `github` provider is set to version 5.37.0, and the `random` provider is set to version 3.3.1.

Additionally, the `aws` provider is configured with the region set to "us-east-1", and the `github` provider is configured with the owner set to "liquibase".

No newline at the end of the file.
…vironment variables for database connection

fix(aws.yml): update mvn command to use environment variables for database connection instead of secrets
…RNAME, DB_PASSWORD, and AURORA_MYSQL_JDBC_URL to correctly reference their values
…atabase schema for MySQL Aurora

The Liquibase actions are added to drop all tables and update the database schema for MySQL Aurora. This is done to ensure that the database is in the correct state before running the tests or deploying the application. The actions are conditional and will only be executed if the database platform is MySQL and the database version is Aurora. The necessary configuration parameters such as URL, username, and password are provided as environment variables. Additionally, the local Maven repository is cached to improve build performance.
…tials to improve clarity and consistency

feat(aws.yml): add support for running Liquibase migrations on Aurora MySQL database
…sql package

chore(aws.yml): improve readability by adding a blank line before the step to install dependencies
jandroav added 9 commits September 22, 2023 13:01
…sure successful installation

feat(aws.yml): add installation steps for liquibase and lpm to enable database initialization
chore(aws.yml): move the step to get LocalStack DB secrets after installing liquibase and lpm for better organization and readability
…ge database migrations

feat(aws.yml): add support for installing liquibase and lpm to manage database migrations during the workflow

fix(aws.yml): remove duplicate installation of liquibase and lpm during the workflow
…sistency and easier version management

fix(aws.yml): update liquibase-package-manager installation commands to use the LPM_VERSION environment variable for flexibility and easier version management
feat(aws.yml): add 'Init Aurora MySQL Database' step to initialize the database for Aurora MySQL
… better provider management

chore(localstack): remove versions.tf file as it is no longer needed for provider versions
…n to disable creation of Aurora PostgreSQL and Redshift resources
…ySQL engine in LocalStack

The RDS_MYSQL_DOCKER environment variable is added with a value of 1 to enable the MySQL engine in LocalStack. This will allow the application to interact with a MySQL database in the local development environment.
jandroav added 4 commits October 17, 2023 10:01
…ers for better readability and compatibility

fix(aws.yml): update liquibase command for mysql to use root as the username for consistency with other databases
…to allow connection to the local RDS instance with self-signed certificate
fix(aws.yml): update liquibase command to use correct environment variable for MySQL password
@jnewton03
Copy link
Contributor

@jandroav since this is on hold due to the localstack bug do you want to make this a draft pr?

@jandroav jandroav marked this pull request as draft October 27, 2023 12:51
@jandroav jandroav marked this pull request as ready for review January 10, 2024 05:49
jandroav and others added 12 commits January 10, 2024 06:54
chore: enable annotation processing in Eclipse

chore: enable annotation processing and update compiler settings in Eclipse
- Update `org.eclipse.jdt.apt.core.prefs` to enable APT and reconcile
- Update `org.eclipse.jdt.core.prefs` to set the compiler source version to 11
… entries for improved project configuration

The changes in this commit remove the unnecessary "optional" attribute from a classpath entry in the .classpath file. This attribute was not needed and was causing confusion in the project configuration.

Additionally, the commit updates the classpath entries to improve the project configuration. It removes some unnecessary attributes and updates the attributes of certain classpath entries to better reflect their purpose and usage.

These changes were made to ensure a cleaner and more accurate project configuration, which will help in the development and maintenance of the project.
feat(.gitignore): add .DS_Store to gitignore to exclude it from version control
feat(.gitignore): add src/test/resources/derby/lbcat/* and src/test/resources/sqlite/* to gitignore to exclude them from version control
…exclude it from version control

chore(.gitignore): ignore .DS_Store file to prevent it from being tracked by git
chore(.gitignore): exclude src/test/resources/derby/lbcat/ directory from version control
chore(.gitignore): exclude src/test/resources/sqlite/ directory from version control
chore(.project): add newline at the end of file to comply with git conventions
The files `createFunction.json`, `createPackage.json`, and `createPackageBody.json` were deleted as they are no longer needed. These files contained Liquibase change definitions for creating a test function in the AWS 10.6 MariaDB database. However, this function is no longer required and has been removed from the codebase. Therefore, the associated Liquibase change files have been deleted to maintain a clean and up-to-date codebase.
Copy link
Contributor

@KushnirykOleh KushnirykOleh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good for me.
What do you think about squashing commits this time? I'm not sure if there is a value in keeping 76 commits for this change

@jandroav jandroav merged commit 1cb05b3 into main Jan 12, 2024
@jandroav jandroav deleted the DAT-1565 branch January 12, 2024 13:15
@jandroav
Copy link
Contributor Author

@KushnirykOleh squashed!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants