From 311ede8eea474b5b85899751481504e3c9f55317 Mon Sep 17 00:00:00 2001 From: Maximilian Hoheiser Date: Tue, 21 Nov 2023 16:28:32 +0100 Subject: [PATCH 01/10] feat: :sparkles: add pre-commit action --- .github/workflows/pre-commit.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .github/workflows/pre-commit.yaml diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml new file mode 100644 index 0000000..cb7c6b7 --- /dev/null +++ b/.github/workflows/pre-commit.yaml @@ -0,0 +1,14 @@ +name: pre-commit + +on: + pull_request: + push: + branches: [main, feature] + +jobs: + pre-commit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v3 + - uses: pre-commit/action@v3.0.0 From 0b3749797f2be68858e7895c2c00f56fb3fb4ba7 Mon Sep 17 00:00:00 2001 From: Maximilian Hoheiser Date: Tue, 21 Nov 2023 18:19:17 +0100 Subject: [PATCH 02/10] feat: :sparkles: add unittest github action --- .github/workflows/test-unit.yaml | 24 ++++++++++++++++ requirements-dev.txt | 47 ++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 .github/workflows/test-unit.yaml create mode 100644 requirements-dev.txt diff --git a/.github/workflows/test-unit.yaml b/.github/workflows/test-unit.yaml new file mode 100644 index 0000000..3ce68e6 --- /dev/null +++ b/.github/workflows/test-unit.yaml @@ -0,0 +1,24 @@ +name: test-unit + +on: + pull_request: + branches: [master, feature] + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: "3.10" + architecture: "x64" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements-dev.txt + - name: Test with unittest + run: | + unittest discover -s tests/unit -v diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 0000000..e357d93 --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,47 @@ +astroid==3.0.1 +black==23.11.0 +boto3==1.29.3 +boto3-stubs==1.29.3 +botocore==1.32.3 +botocore-stubs==1.32.3.post1 +certifi==2023.11.17 +cfgv==3.4.0 +charset-normalizer==3.3.2 +click==8.1.7 +codecov==2.1.13 +commit-linter==1.0.3 +coverage==7.3.2 +dill==0.3.7 +distlib==0.3.7 +filelock==3.13.1 +flake8==6.1.0 +identify==2.5.32 +idna==3.4 +isort==5.12.0 +jmespath==1.0.1 +mccabe==0.7.0 +mypy==1.7.0 +mypy-boto3==1.29.3 +mypy-boto3-dynamodb==1.29.0 +mypy-extensions==1.0.0 +nodeenv==1.8.0 +packaging==23.2 +pathspec==0.11.2 +platformdirs==3.11.0 +pre-commit==3.5.0 +pycodestyle==2.11.1 +pyflakes==3.1.0 +pylint==3.0.2 +python-dateutil==2.8.2 +PyYAML==6.0.1 +requests==2.31.0 +s3transfer==0.7.0 +six==1.16.0 +tomli==2.0.1 +tomlkit==0.12.3 +types-awscrt==0.19.13 +types-requests==2.31.0.10 +types-s3transfer==0.7.0 +typing_extensions==4.8.0 +urllib3==2.0.7 +virtualenv==20.24.6 From 0428377606eb08cdeae1aa441a41046046e2bffe Mon Sep 17 00:00:00 2001 From: Maximilian Hoheiser Date: Tue, 21 Nov 2023 18:21:53 +0100 Subject: [PATCH 03/10] feat: :sparkles: add unittest github action --- .github/workflows/test-unit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-unit.yaml b/.github/workflows/test-unit.yaml index 3ce68e6..f8cb063 100644 --- a/.github/workflows/test-unit.yaml +++ b/.github/workflows/test-unit.yaml @@ -21,4 +21,4 @@ jobs: pip install -r requirements-dev.txt - name: Test with unittest run: | - unittest discover -s tests/unit -v + python -m unittest discover -s tests/unit -v From 96b0139bb66a26c616d8bab88c67099832c5eff1 Mon Sep 17 00:00:00 2001 From: Maximilian Hoheiser Date: Tue, 21 Nov 2023 18:27:30 +0100 Subject: [PATCH 04/10] feat: :sparkles: :sparkles: add localstack test github action --- .../test-integration-localstack.yaml | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 .github/workflows/test-integration-localstack.yaml diff --git a/.github/workflows/test-integration-localstack.yaml b/.github/workflows/test-integration-localstack.yaml new file mode 100644 index 0000000..93809f7 --- /dev/null +++ b/.github/workflows/test-integration-localstack.yaml @@ -0,0 +1,30 @@ +name: test-integration-localstack + +on: + pull_request: + branches: [master, feature] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Start LocalStack + run: | + pip install localstack awscli-local[ver1] + docker pull localstack/localstack + localstack start -d + + echo "Waiting for LocalStack startup..." + localstack wait -t 30 + echo "Startup complete" + - name: Deploy infrastructure + run: | + bin/deploy.sh + - name: Run integration tests against LocalStack + run: | + python -m pytest tests/integration + - name: Show localstack logs + if: always() + run: | + localstack logs From 059cbbe7410b13c33c59867655a14c06ded7137f Mon Sep 17 00:00:00 2001 From: Maximilian Hoheiser Date: Tue, 21 Nov 2023 18:31:37 +0100 Subject: [PATCH 05/10] fix: :bug: make bash script executable --- bin/deploy.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 bin/deploy.sh diff --git a/bin/deploy.sh b/bin/deploy.sh old mode 100644 new mode 100755 From e9f91583e8e78c88873305ae2b5beb560eff58a9 Mon Sep 17 00:00:00 2001 From: Maximilian Hoheiser Date: Tue, 21 Nov 2023 18:35:17 +0100 Subject: [PATCH 06/10] fix: :bug: use correct python version for packing deps --- .github/workflows/test-integration-localstack.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/test-integration-localstack.yaml b/.github/workflows/test-integration-localstack.yaml index 93809f7..cc5aa9a 100644 --- a/.github/workflows/test-integration-localstack.yaml +++ b/.github/workflows/test-integration-localstack.yaml @@ -18,6 +18,11 @@ jobs: echo "Waiting for LocalStack startup..." localstack wait -t 30 echo "Startup complete" + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: "3.10" + architecture: "x64" - name: Deploy infrastructure run: | bin/deploy.sh From d8ad5eedce0658f5da835953da21ee03ef979ca6 Mon Sep 17 00:00:00 2001 From: Maximilian Hoheiser Date: Tue, 21 Nov 2023 18:48:05 +0100 Subject: [PATCH 07/10] fix: :bug: install dependencies before localstack --- .github/workflows/test-integration-localstack.yaml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test-integration-localstack.yaml b/.github/workflows/test-integration-localstack.yaml index cc5aa9a..c99a3a5 100644 --- a/.github/workflows/test-integration-localstack.yaml +++ b/.github/workflows/test-integration-localstack.yaml @@ -9,6 +9,14 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: "3.10" + architecture: "x64" + - name: Install dependencies + run: | + pip install -r requirements-dev.txt - name: Start LocalStack run: | pip install localstack awscli-local[ver1] @@ -18,11 +26,6 @@ jobs: echo "Waiting for LocalStack startup..." localstack wait -t 30 echo "Startup complete" - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.10" - architecture: "x64" - name: Deploy infrastructure run: | bin/deploy.sh From 35d6b283794e809768ed9359fd6b123e81838907 Mon Sep 17 00:00:00 2001 From: Maximilian Hoheiser Date: Tue, 21 Nov 2023 18:52:08 +0100 Subject: [PATCH 08/10] fix: :bug: update dev dependencies --- requirements-dev.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/requirements-dev.txt b/requirements-dev.txt index e357d93..0b356e4 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,4 +1,5 @@ astroid==3.0.1 +awscli-local==0.21.1 black==23.11.0 boto3==1.29.3 boto3-stubs==1.29.3 @@ -13,12 +14,15 @@ commit-linter==1.0.3 coverage==7.3.2 dill==0.3.7 distlib==0.3.7 +exceptiongroup==1.2.0 filelock==3.13.1 flake8==6.1.0 identify==2.5.32 idna==3.4 +iniconfig==2.0.0 isort==5.12.0 jmespath==1.0.1 +localstack-client==2.5 mccabe==0.7.0 mypy==1.7.0 mypy-boto3==1.29.3 @@ -28,10 +32,12 @@ nodeenv==1.8.0 packaging==23.2 pathspec==0.11.2 platformdirs==3.11.0 +pluggy==1.3.0 pre-commit==3.5.0 pycodestyle==2.11.1 pyflakes==3.1.0 pylint==3.0.2 +pytest==7.4.3 python-dateutil==2.8.2 PyYAML==6.0.1 requests==2.31.0 From 61f3dd6cfdc93904972df60eb00149184a941047 Mon Sep 17 00:00:00 2001 From: Maximilian Hoheiser Date: Tue, 21 Nov 2023 19:04:20 +0100 Subject: [PATCH 09/10] fix: :bug: :bug: add required aws env variables --- .github/workflows/test-integration-localstack.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/test-integration-localstack.yaml b/.github/workflows/test-integration-localstack.yaml index c99a3a5..6bc44d2 100644 --- a/.github/workflows/test-integration-localstack.yaml +++ b/.github/workflows/test-integration-localstack.yaml @@ -30,6 +30,11 @@ jobs: run: | bin/deploy.sh - name: Run integration tests against LocalStack + env: + AWS_DEFAULT_REGION: eu-west-1 + AWS_REGION: eu-west-1 + AWS_ACCESS_KEY_ID: test + AWS_SECRET_ACCESS_KEY: test run: | python -m pytest tests/integration - name: Show localstack logs From 67d680680f5d16772a727fb6df9513445786d340 Mon Sep 17 00:00:00 2001 From: Maximilian Hoheiser Date: Tue, 21 Nov 2023 20:04:13 +0100 Subject: [PATCH 10/10] fix: :bug: switch to global env variables for aws config --- .github/workflows/test-integration-localstack.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test-integration-localstack.yaml b/.github/workflows/test-integration-localstack.yaml index 6bc44d2..ed5294e 100644 --- a/.github/workflows/test-integration-localstack.yaml +++ b/.github/workflows/test-integration-localstack.yaml @@ -4,6 +4,12 @@ on: pull_request: branches: [master, feature] +env: + AWS_DEFAULT_REGION: eu-west-1 + AWS_REGION: eu-west-1 + AWS_ACCESS_KEY_ID: test + AWS_SECRET_ACCESS_KEY: test + jobs: test: runs-on: ubuntu-latest @@ -30,11 +36,6 @@ jobs: run: | bin/deploy.sh - name: Run integration tests against LocalStack - env: - AWS_DEFAULT_REGION: eu-west-1 - AWS_REGION: eu-west-1 - AWS_ACCESS_KEY_ID: test - AWS_SECRET_ACCESS_KEY: test run: | python -m pytest tests/integration - name: Show localstack logs