-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #25 from TheSecretOrganization/23-create-action-to…
…-build-containers Workflow to check that containers are running
- Loading branch information
Showing
5 changed files
with
77 additions
and
2 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
name: Deployment Check | ||
on: | ||
push: | ||
branches: | ||
- main | ||
pull_request: | ||
types: [opened, synchronize, reopened] | ||
jobs: | ||
docker-compose: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout Code | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Create .env file | ||
run: | | ||
cat << EOF > .env | ||
SECRET_KEY="foo" | ||
DJANGO_SUPERUSER_USERNAME="bar" | ||
DJANGO_SUPERUSER_EMAIL="[email protected]" | ||
DJANGO_SUPERUSER_PASSWORD="foobar" | ||
DJANGO_ALLOWED_HOSTS=localhost | ||
DJANGO_CSRF_TRUSTED_ORIGINS=http://localhost | ||
POSTGRES_DB="foodb" | ||
POSTGRES_USER="bar" | ||
POSTGRES_PASSWORD="foobar" | ||
EOF | ||
- name: Build and start Docker containers | ||
run: docker compose up --build -d | ||
|
||
- name: Wait for services to initialize | ||
run: sleep 30 | ||
|
||
- name: Perform health checks | ||
run: | | ||
services=$(docker compose ps --services) | ||
for service in $services; do | ||
status=$(docker inspect -f '{{.State.Health.Status}}' $service) | ||
if [ "$status" != "healthy" ]; then | ||
echo "$service is not healthy" | ||
exit 1 | ||
fi | ||
done |
Empty file.
Empty file.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
from django.core.management.base import BaseCommand | ||
from django.db import connections | ||
from django.db.utils import OperationalError | ||
|
||
class Command(BaseCommand): | ||
help = 'Perform a health check' | ||
|
||
def handle(self, *args, **kwargs): | ||
db_conn = connections['default'] | ||
try: | ||
db_conn.cursor() | ||
self.stdout.write(self.style.SUCCESS('Health check passed')) | ||
except OperationalError: | ||
self.stdout.write(self.style.ERROR('Database is unavailable')) | ||
exit(1) |
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