88 machine :
99 image : ubuntu-2204:current
1010 environment :
11- LOCALSTACK_AUTH_TOKEN : ${LOCALSTACK_AUTH_TOKEN}
1211 AWS_DEFAULT_REGION : us-east-1
1312 AWS_REGION : us-east-1
1413 AWS_ACCESS_KEY_ID : test
@@ -21,53 +20,69 @@ jobs:
2120 keys :
2221 - python-deps-{{ checksum "requirements-dev.txt" }}
2322 - python-deps
24- # - run:
25- # name: Install Python 3.11
26- # command: |
27- # test -d /opt/circleci/.pyenv/versions/3.11.1 || pyenv install 3.11.1
28- # pyenv global 3.11.1
23+
2924 - run :
3025 name : Install LocalStack CLI + awslocal
3126 command : |
32- pip3 install localstack awscli-local[ver1]
33- # echo 'export PATH=$HOME/.local/bin:$PATH' >> "$BASH_ENV"
27+ python3 -m pip install --user --upgrade pip
28+ python3 -m pip install --user localstack awscli-local[ver1]
29+ echo 'export PATH=$HOME/.local/bin:$PATH' >> "$BASH_ENV"
30+
31+ - run :
32+ name : Verify and configure LocalStack token
33+ command : |
34+ source "$BASH_ENV"
35+ if [ -z "${LOCALSTACK_AUTH_TOKEN:-}" ]; then
36+ echo "LOCALSTACK_AUTH_TOKEN is not set in this job."
37+ echo "Set it in CircleCI Project Settings > Environment Variables or via Context."
38+ exit 1
39+ fi
40+ echo "LOCALSTACK_AUTH_TOKEN is present (length=${#LOCALSTACK_AUTH_TOKEN})"
41+ localstack auth set-token "$LOCALSTACK_AUTH_TOKEN"
42+
3443 - run :
3544 name : Start LocalStack
3645 command : |
37- # source "$BASH_ENV"
46+ source "$BASH_ENV"
3847 docker pull localstack/localstack:latest
3948 localstack start -d
4049 localstack wait -t 60
50+
4151 - run :
4252 name : Install dependencies
4353 command : pip3 install -r requirements-dev.txt --upgrade
54+
4455 - run :
4556 name : Build lambdas
4657 command : deployment/build-lambdas.sh
58+
4759 - run :
4860 name : Deploy infrastructure
4961 command : deployment/awslocal/deploy.sh
62+
5063 - run :
5164 name : Export state
5265 command : |
5366 source "$BASH_ENV"
5467 localstack state export ls-state.zip
68+
5569 - persist_to_workspace :
5670 root : .
5771 paths :
5872 - ls-state.zip
73+
5974 - save_cache :
6075 paths :
6176 - /opt/circleci/.pyenv/versions/3.11.1
6277 key : python-deps-{{ checksum "requirements-dev.txt" }}
78+
6379 - store_artifacts :
6480 path : ls-state.zip
6581
6682 load-state :
6783 machine :
6884 image : ubuntu-2204:current
6985 environment :
70- LOCALSTACK_AUTH_TOKEN : ${LOCALSTACK_AUTH_TOKEN}
7186 AWS_DEFAULT_REGION : us-east-1
7287 AWS_REGION : us-east-1
7388 AWS_ACCESS_KEY_ID : test
@@ -78,35 +93,58 @@ jobs:
7893 - checkout
7994 - restore_cache :
8095 key : python-deps-
96+
8197 - run :
8298 name : Install LocalStack CLI + awslocal
8399 command : |
84- pip3 install localstack awscli-local[ver1]
100+ python3 -m pip install --user --upgrade pip
101+ python3 -m pip install --user localstack awscli-local[ver1]
102+ echo 'export PATH=$HOME/.local/bin:$PATH' >> "$BASH_ENV"
103+
104+ - run :
105+ name : Verify and configure LocalStack token
106+ command : |
107+ source "$BASH_ENV"
108+ if [ -z "${LOCALSTACK_AUTH_TOKEN:-}" ]; then
109+ echo "LOCALSTACK_AUTH_TOKEN is not set in this job."
110+ echo "Set it in CircleCI Project Settings > Environment Variables or via Context."
111+ exit 1
112+ fi
113+ echo "LOCALSTACK_AUTH_TOKEN is present (length=${#LOCALSTACK_AUTH_TOKEN})"
114+ localstack auth set-token "$LOCALSTACK_AUTH_TOKEN"
115+
85116 - run :
86117 name : Start LocalStack
87118 command : |
119+ source "$BASH_ENV"
88120 docker pull localstack/localstack:latest
89121 localstack start -d
90122 localstack wait -t 60
123+
91124 - run :
92125 name : Install dependencies
93126 command : pip3 install -r requirements-dev.txt
127+
94128 - attach_workspace :
95129 at : .
130+
96131 - run :
97132 name : Import state
98133 command : |
99134 source "$BASH_ENV"
100135 test -f ls-state.zip && localstack state import ls-state.zip
136+
101137 - run :
102138 name : Run tests
103139 command : pytest tests
140+
104141 - run :
105142 when : on_fail
106143 name : Dump LocalStack logs
107144 command : |
108145 source "$BASH_ENV"
109146 localstack logs | tee localstack.log
147+
110148 - store_artifacts :
111149 path : localstack.log
112150
0 commit comments