Skip to content

Commit 14b8661

Browse files
committed
feat: update to new serverless gateway
1 parent fc1705e commit 14b8661

16 files changed

+384
-443
lines changed
Lines changed: 51 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
name: API Gateway integration tests with Pytest
1+
---
2+
name: API Gateway integration tests
23

34
on:
45
push:
@@ -11,90 +12,67 @@ permissions:
1112
contents: read
1213

1314
env:
14-
GATEWAY_CHECKOUT_DIR: "gateway"
15-
S3_ENDPOINT: "https://s3.fr-par.scw.cloud"
16-
S3_REGION: "fr-par"
17-
18-
defaults:
19-
run:
20-
shell: bash
15+
SCW_DEFAULT_ORGANIZATION_ID: ${{ secrets.SCW_DEFAULT_ORGANIZATION_ID }}
16+
SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY }}
17+
SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY }}
18+
SCW_DEFAULT_PROJECT_ID: ${{ secrets.SCW_DEFAULT_PROJECT_ID }}
2119

2220
jobs:
23-
test-deployed-gateway:
21+
setup-gateway:
2422
runs-on: self-hosted
25-
container: python:3.11-bullseye
23+
container: python:3.11-bookworm
2624
steps:
2725
- uses: actions/checkout@v3
2826

2927
- uses: ./.github/actions/setup-poetry
3028

31-
- uses: actions/checkout@v3
32-
with:
33-
repository: scaleway/serverless-gateway
34-
path: ${{ env.GATEWAY_CHECKOUT_DIR }}
35-
36-
- name: Install CLI and create config file
37-
uses: scaleway/action-scw@v0.0.1
38-
with:
39-
version: v2.14.0
40-
access-key: ${{ secrets.SCW_ACCESS_KEY }}
41-
secret-key: ${{ secrets.SCW_SECRET_KEY }}
42-
default-project-id: ${{ secrets.SCW_DEFAULT_PROJECT_ID }}
43-
default-organization-id: ${{ secrets.SCW_DEFAULT_ORGANIZATION_ID }}
44-
save-config: true
45-
46-
- name: Install jq
47-
run: apt-get update && apt-get install -y jq
48-
49-
- name: Create Gateway namespace
50-
working-directory: ${{ env.GATEWAY_CHECKOUT_DIR }}
29+
- name: Create gateway database
5130
run: |
52-
make create-namespace
53-
until [ $(make check-namespace -s) == ready ]; do sleep 10; done
31+
poetry run scwgw create-db
32+
poetry run scwgw await-db
5433
55-
- name: Create Gateway container
56-
working-directory: ${{ env.GATEWAY_CHECKOUT_DIR }}
57-
# We need to truncate gateway.env as it will override our env vars
34+
- name: Create gateway namespace
5835
run: |
59-
truncate -s 0 gateway.env
60-
make create-container
61-
make deploy-container
62-
until [ $(make check-container -s) == ready ]; do sleep 10; done
63-
env:
64-
SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY }}
65-
SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY }}
66-
S3_BUCKET_NAME: ${{ secrets.GATEWAY_S3_BUCKET_NAME }}
67-
68-
- name: Install s3cmd
69-
run: pip install s3cmd
70-
71-
- name: Create S3 bucket
72-
working-directory: ${{ env.GATEWAY_CHECKOUT_DIR }}
36+
poetry run scwgw create-namespace
37+
poetry run scwgw await-namespace
38+
39+
- name: Create gateway container
7340
run: |
74-
make set-up-s3-cli
75-
make create-s3-bucket
76-
env:
77-
S3_BUCKET_NAME: ${{ secrets.GATEWAY_S3_BUCKET_NAME }}
41+
poetry run scwgw create-containers
42+
poetry run scwgw await-containers
43+
44+
run-tests:
45+
needs:
46+
- setup-gateway
47+
runs-on: self-hosted
48+
container: python:3.11-bookworm
49+
steps:
50+
- uses: actions/checkout@v3
51+
52+
- uses: ./.github/actions/setup-poetry
7853

7954
- name: Run integration tests
55+
working-directory: tests
8056
run: |
81-
pushd $GATEWAY_CHECKOUT_DIR
82-
export GATEWAY_HOST=$(make gateway-host -s)
83-
popd
84-
poetry run pytest tests/integrations/gateway -n $(nproc --all)
85-
env:
86-
SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY }}
87-
SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY }}
88-
GATEWAY_S3_BUCKET_NAME: ${{ secrets.GATEWAY_S3_BUCKET_NAME }}
89-
90-
- name: Delete S3 bucket
91-
working-directory: ${{ env.GATEWAY_CHECKOUT_DIR }}
92-
run: make delete-bucket
93-
env:
94-
S3_BUCKET_NAME: ${{ secrets.GATEWAY_S3_BUCKET_NAME }}
95-
if: always()
96-
97-
- name: Delete Gateway namespace and container
98-
working-directory: ${{ env.GATEWAY_CHECKOUT_DIR }}
99-
run: make delete-namespace
100-
if: always()
57+
poetry run scwgw remote-config
58+
poetry run pytest integrations/gateway -n $(nproc --all)
59+
60+
teardown-gateway:
61+
runs-on: self-hosted
62+
container: python:3.11-bookworm
63+
needs:
64+
- run-tests
65+
66+
# Tolerate errors if no resources found to clean up
67+
continue-on-error: true
68+
69+
steps:
70+
- uses: actions/checkout@v3
71+
72+
- uses: ./.github/actions/setup-poetry
73+
74+
- name: Delete namespace
75+
run: poetry run scwgw delete-namespace
76+
77+
- name: Delete database
78+
run: poetry run scwgw delete-db

.github/workflows/pytest-integration.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ permissions:
1313
jobs:
1414
test:
1515
runs-on: self-hosted
16-
container: python:3.11-bullseye
16+
container: python:3.11-bookworm
1717
steps:
1818
- uses: actions/checkout@v3
1919

.github/workflows/pytest.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ permissions:
1414
jobs:
1515
test:
1616
runs-on: self-hosted
17-
container: python:3.11-bullseye
17+
container: python:3.11-bookworm
1818
steps:
1919
- uses: actions/checkout@v3
2020

.github/workflows/python-publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ permissions:
1111
jobs:
1212
deploy:
1313
runs-on: self-hosted
14-
container: python:3.11-bullseye
14+
container: python:3.11-bookworm
1515
steps:
1616
- uses: actions/checkout@v3
1717

0 commit comments

Comments
 (0)