Skip to content

Commit dcdeff2

Browse files
authored
Add lambda runtime build commands (#4690)
1 parent 15c8b32 commit dcdeff2

4 files changed

Lines changed: 81 additions & 5 deletions

File tree

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ jobs:
120120
run: |
121121
aws ecr get-login-password --region ${{ secrets.GRAND_CHALLENGE_PRIVATE_REPOSITORY_REGION }} | docker login --username AWS --password-stdin ${{ secrets.GRAND_CHALLENGE_PRIVATE_REPOSITORY_HOST }}
122122
GRAND_CHALLENGE_PRIVATE_REPOSITORY_WEB_URI=${{ secrets.GRAND_CHALLENGE_PRIVATE_REPOSITORY_WEB_URI }} make push_web_private
123+
GRAND_CHALLENGE_PRIVATE_REPOSITORY_WEB_URI=${{ secrets.GRAND_CHALLENGE_PRIVATE_REPOSITORY_WEB_URI }} make push_web_lambda
123124
- name: Configure AWS credentials for ECR Public
124125
uses: aws-actions/configure-aws-credentials@v6
125126
with:

Makefile

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,20 @@ build_web_dist:
5555
-f dockerfiles/web/Dockerfile \
5656
.
5757

58+
build_web_lambda:
59+
DOCKER_BUILDKIT=0 docker build \
60+
--build-arg PYTHON_VERSION=$(PYTHON_VERSION) \
61+
--build-arg COMMIT_ID=$(GIT_COMMIT_ID) \
62+
--build-arg LOCKFILE_HASH=$(LOCKFILE_HASH) \
63+
--build-arg GRAND_CHALLENGE_WEB_TEST_BASE_REPOSITORY_URI=$(GRAND_CHALLENGE_WEB_TEST_BASE_REPOSITORY_URI) \
64+
--build-arg GRAND_CHALLENGE_WEB_BASE_REPOSITORY_URI=$(GRAND_CHALLENGE_WEB_BASE_REPOSITORY_URI) \
65+
--network grand-challengeorg_default \
66+
--target dist-lambda \
67+
-t $(GRAND_CHALLENGE_WEB_REPOSITORY_URI):lambda-$(GIT_COMMIT_ID)-$(GIT_BRANCH_NAME)-$(LOCKFILE_HASH) \
68+
-f dockerfiles/web/Dockerfile \
69+
-t docker-image:test \
70+
.
71+
5872
push_web_base:
5973
docker push $(GRAND_CHALLENGE_WEB_BASE_REPOSITORY_URI):$(PYTHON_VERSION)-$(LOCKFILE_HASH)
6074

@@ -65,12 +79,18 @@ push_web_private:
6579
docker tag $(GRAND_CHALLENGE_WEB_REPOSITORY_URI):$(GIT_COMMIT_ID)-$(GIT_BRANCH_NAME)-$(LOCKFILE_HASH) $(GRAND_CHALLENGE_PRIVATE_REPOSITORY_WEB_URI):$(GIT_COMMIT_ID)-$(GIT_BRANCH_NAME)-$(LOCKFILE_HASH)
6680
docker push $(GRAND_CHALLENGE_PRIVATE_REPOSITORY_WEB_URI):$(GIT_COMMIT_ID)-$(GIT_BRANCH_NAME)-$(LOCKFILE_HASH)
6781

68-
build: build_web_test build_web_dist
82+
push_web_lambda:
83+
docker tag $(GRAND_CHALLENGE_WEB_REPOSITORY_URI):lambda-$(GIT_COMMIT_ID)-$(GIT_BRANCH_NAME)-$(LOCKFILE_HASH) $(GRAND_CHALLENGE_PRIVATE_REPOSITORY_WEB_URI):lambda-$(GIT_COMMIT_ID)-$(GIT_BRANCH_NAME)-$(LOCKFILE_HASH)
84+
docker push $(GRAND_CHALLENGE_PRIVATE_REPOSITORY_WEB_URI):lambda-$(GIT_COMMIT_ID)-$(GIT_BRANCH_NAME)-$(LOCKFILE_HASH)
85+
86+
build: build_web_test build_web_dist build_web_lambda
6987

70-
push_staging: build_web_dist
88+
push_staging: build_web_dist build_web_lambda
7189
docker tag $(GRAND_CHALLENGE_WEB_REPOSITORY_URI):$(GIT_COMMIT_ID)-$(GIT_BRANCH_NAME)-$(LOCKFILE_HASH) $(GRAND_CHALLENGE_WEB_STAGING_REPOSITORY_URI):$(GIT_COMMIT_ID)-$(GIT_BRANCH_NAME)-$(LOCKFILE_HASH)
90+
docker tag $(GRAND_CHALLENGE_WEB_REPOSITORY_URI):lambda-$(GIT_COMMIT_ID)-$(GIT_BRANCH_NAME)-$(LOCKFILE_HASH) $(GRAND_CHALLENGE_WEB_STAGING_REPOSITORY_URI):lambda-$(GIT_COMMIT_ID)-$(GIT_BRANCH_NAME)-$(LOCKFILE_HASH)
7291
aws ecr get-login-password --region $(GRAND_CHALLENGE_STAGING_REGION) --profile $(GRAND_CHALLENGE_STAGING_PROFILE) | docker login --username AWS --password-stdin $(GRAND_CHALLENGE_STAGING_ECR_HOST)
7392
docker push $(GRAND_CHALLENGE_WEB_STAGING_REPOSITORY_URI):$(GIT_COMMIT_ID)-$(GIT_BRANCH_NAME)-$(LOCKFILE_HASH)
93+
docker push $(GRAND_CHALLENGE_WEB_STAGING_REPOSITORY_URI):lambda-$(GIT_COMMIT_ID)-$(GIT_BRANCH_NAME)-$(LOCKFILE_HASH)
7494

7595
migrate:
7696
docker compose run --rm gc.localhost python manage.py migrate

dockerfiles/web/Dockerfile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,12 @@ ARG COMMIT_ID=unknown
2727
ENV COMMIT_ID=$COMMIT_ID
2828

2929
RUN python manage.py collectstatic --noinput && python manage.py compress --force
30+
31+
####################
32+
# Lambda Container #
33+
####################
34+
35+
FROM --platform=linux/amd64 dist AS dist-lambda
36+
37+
ENTRYPOINT [ "/usr/local/bin/python", "-m", "awslambdaric" ]
38+
CMD [ "lambda_tasks.handler.handler" ]

uv.lock

Lines changed: 49 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)