diff --git a/.circleci/config.yml b/.circleci/config.yml index 332acf2..be668fa 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,99 +1,128 @@ version: 2.1 - orbs: - localstack: localstack/platform@2.1 - + python: circleci/python@4.0.0 jobs: save-state: - executor: localstack/default + machine: + image: ubuntu-2204:current + environment: + AWS_DEFAULT_REGION: us-east-1 + AWS_REGION: us-east-1 + AWS_ACCESS_KEY_ID: test + AWS_SECRET_ACCESS_KEY: test + DEBUG: 1 + LS_LOG: trace steps: - checkout - restore_cache: keys: - python-deps-{{ checksum "requirements-dev.txt" }} - python-deps + - run: - name: Install Python 3.11 + name: Install LocalStack CLI + awslocal command: | - # Currently highest available 3.11 on CircleCI runner - test -d /opt/circleci/.pyenv/versions/3.11.1 || pyenv install 3.11.1 - pyenv global 3.11.1 - - localstack/start + python3 -m pip install --user --upgrade pip + python3 -m pip install --user localstack awscli-local[ver1] + echo 'export PATH=$HOME/.local/bin:$PATH' >> "$BASH_ENV" + + - run: + name: Start LocalStack + command: | + source "$BASH_ENV" + docker pull localstack/localstack:latest + localstack start -d + localstack wait -t 60 + - run: name: Install dependencies - command: - pip3 install -r requirements-dev.txt --upgrade - - localstack/wait + command: pip3 install -r requirements-dev.txt --upgrade + - run: name: Build lambdas - command: - deployment/build-lambdas.sh - + command: deployment/build-lambdas.sh + - run: name: Deploy infrastructure - command: - deployment/awslocal/deploy.sh - + command: deployment/awslocal/deploy.sh + - run: name: Export state - command: localstack state export ls-state.zip + command: | + source "$BASH_ENV" + localstack state export ls-state.zip + - persist_to_workspace: root: . paths: - ls-state.zip + - save_cache: paths: - /opt/circleci/.pyenv/versions/3.11.1 key: python-deps-{{ checksum "requirements-dev.txt" }} + - store_artifacts: path: ls-state.zip - load-state: - executor: localstack/default + machine: + image: ubuntu-2204:current environment: - AWS_DEFAULT_REGION: us-east-1 - AWS_REGION: us-east-1 - AWS_ACCESS_KEY_ID: test - AWS_SECRET_ACCESS_KEY: test - DEBUG: 1 - LS_LOG: trace + AWS_DEFAULT_REGION: us-east-1 + AWS_REGION: us-east-1 + AWS_ACCESS_KEY_ID: test + AWS_SECRET_ACCESS_KEY: test + DEBUG: 1 + LS_LOG: trace steps: + - checkout - restore_cache: key: python-deps- + - run: - name: Choose python version - command: - pyenv global 3.11.1 - - localstack/start - - checkout + name: Install LocalStack CLI + awslocal + command: | + python3 -m pip install --user --upgrade pip + python3 -m pip install --user localstack awscli-local[ver1] + echo 'export PATH=$HOME/.local/bin:$PATH' >> "$BASH_ENV" + + - run: + name: Start LocalStack + command: | + source "$BASH_ENV" + docker pull localstack/localstack:latest + localstack start -d + localstack wait -t 60 + - run: name: Install dependencies - command: - pip3 install -r requirements-dev.txt - - localstack/wait + command: pip3 install -r requirements-dev.txt + - attach_workspace: at: . + - run: name: Import state - command: test -f ls-state.zip && localstack state import ls-state.zip - - run: - name: Run Tests - command: - pytest tests + command: | + source "$BASH_ENV" + test -f ls-state.zip && localstack state import ls-state.zip + - run: when: on_fail - name: Dump Localstack logs - command: localstack logs | tee localstack.log + name: Dump LocalStack logs + command: | + source "$BASH_ENV" + localstack logs | tee localstack.log + - store_artifacts: path: localstack.log - workflows: do-tests: jobs: - save-state - load-state: - requires: [save-state] \ No newline at end of file + requires: [save-state] diff --git a/lambdas/resize/requirements.txt b/lambdas/resize/requirements.txt index a6d4d60..7e2fba5 100644 --- a/lambdas/resize/requirements.txt +++ b/lambdas/resize/requirements.txt @@ -1 +1 @@ -Pillow==9.2.0 +Pillow diff --git a/requirements-dev.txt b/requirements-dev.txt index 9bf6a99..4f76c93 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,6 +1,6 @@ boto3 requests>=2.20 -Pillow==9.2.0 +Pillow mypy-boto3-ssm mypy-boto3-sns mypy-boto3-s3