Feedback V2 #1807
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
# Enable Buildkit and let compose use it to speed up image building | |
env: | |
DOCKER_BUILDKIT: 1 | |
COMPOSE_DOCKER_CLI_BUILD: 1 | |
on: | |
pull_request: | |
branches: | |
- dev | |
- master | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code Repository | |
uses: actions/checkout@v4 | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.9 | |
- name: Install flake8 | |
run: | | |
python -m pip install --upgrade pip | |
pip install flake8 | |
- name: Lint with flake8 | |
run: flake8 app | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code Repository | |
uses: actions/checkout@v4 | |
- name: Set up .env file | |
run: | | |
touch .env | |
echo "AZURE_STORAGE_CONNECTION_STRING=${{ secrets.AZURE_STORAGE_CONNECTION_STRING }}" >> .env | |
echo "VIPPS_MERCHANT_SERIAL_NUMBER=${{ secrets.VIPPS_MERCHANT_SERIAL_NUMBER }}" >> .env | |
- name: Build the Stack | |
run: docker compose build | |
- name: Run the Stack | |
run: docker compose up -d | |
- name: Make DB Migrations | |
run: docker compose run --rm web python manage.py migrate | |
- name: Run Django Tests | |
run: docker compose run --rm web pytest --cov=app | |
- name: Tear down the Stack | |
run: docker compose down | |
check-migrations: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code Repository | |
uses: actions/checkout@v4 | |
- name: Build the Stack | |
run: docker compose build | |
- name: Run the Stack | |
run: docker compose up -d | |
- name: Check for unstaged migrations | |
run: docker compose run --rm web python manage.py makemigrations --check --no-input | |
- name: Tear down the Stack | |
run: docker compose down | |
swagger: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code Repository | |
uses: actions/checkout@v4 | |
- name: Build the Stack | |
run: docker compose build | |
- name: Run the Stack | |
run: docker compose up -d | |
- name: Wait for Docker container to be up | |
run: | | |
retries=10 | |
until docker compose exec web curl -f http://localhost:8000/ || [ $retries -eq 0 ]; do | |
echo "Waiting for container to be up..." | |
retries=$((retries - 1)) | |
sleep 5 | |
done | |
- name: Make HTTP Request to Swagger | |
run: | | |
status_code=$(curl -o /dev/null -s -w "%{http_code}" http://localhost:8000/swagger/?format=openapi) | |
if [ "$status_code" -eq 200 ]; then | |
echo "Swagger UI is up" | |
else | |
echo "Failed to reach Swagger UI, status code: $status_code" | |
exit 1 | |
fi | |
- name: Tear down the Stack | |
run: docker compose down |