Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions .github/workflows/Dockerfile.qa
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
FROM python:3.13.2 AS builder

ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1
WORKDIR /app

RUN python -m venv .venv

COPY requirements.txt ./

# Copy the dev firewall package
COPY aikido_zen-*.whl ./

# === THIS SECTION IS MODIFIED FOR QA STEP ===
RUN .venv/bin/pip install -r requirements.txt && \
.venv/bin/pip uninstall -y aikido-zen && \
.venv/bin/pip install ./aikido_zen-*.whl
# === END OF MODIFIED SECTION ===

FROM python:3.13.2-slim
WORKDIR /app
RUN apt update && apt install -y gdb procps
COPY --from=builder /app/.venv .venv/
COPY . .
ENV AIKIDO_BLOCK="1"
CMD ["/app/.venv/bin/gunicorn", "--bind=[::]:8080", "--access-logfile=-", "--workers=1", "--threads=4", "wsgi:app"]
52 changes: 52 additions & 0 deletions .github/workflows/qa-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: 🧪 QA Tests
permissions:
contents: read
on:
push: {}
workflow_call: {}

jobs:
qa-tests:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout firewall-python
uses: actions/checkout@v5
with:
path: firewall-python

- name: Checkout zen-demo-python
uses: actions/checkout@v5
with:
repository: Aikido-demo-apps/zen-demo-python
path: zen-demo-python
ref: qa-test
submodules: true

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13"

- name: Install poetry
run: pip install poetry

- name: Build firewall-python dev package
run: |
cd firewall-python
make build

# Move the built wheel to zen-demo-python directory
# poetry build creates both .tar.gz and .whl, we only need the wheel
mv dist/*.whl ../zen-demo-python/

- name: Replace Dockerfile with QA version
run: |
cp firewall-python/.github/workflows/Dockerfile.qa zen-demo-python/Dockerfile

- name: Run Firewall QA Tests
uses: AikidoSec/firewall-tester-action@releases/v1
with:
dockerfile_path: ./zen-demo-python/Dockerfile
app_port: 8080
sleep_before_test: 10
Loading