diff --git a/.github/workflows/quick-start.yml b/.github/workflows/quick-start.yml new file mode 100644 index 0000000..6552b1b --- /dev/null +++ b/.github/workflows/quick-start.yml @@ -0,0 +1,47 @@ +name: quick-start + +on: + workflow_call: + inputs: + fixtures: + required: false + type: string + + superuser: + required: false + type: string + + web_service: + required: false + type: string + +jobs: + run: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Start docker containers + run: docker compose up -d --build || ( docker compose logs >&2 && exit 1; ) + - name: Wait for migrations to finish + run: | + echo "Waiting for migrations to complete..." + until ! docker compose exec -T web src/manage.py showmigrations | grep -q '\[ \]'; do + echo "Migrations not finished, waiting..." + sleep 3 + done + - name: Load fixtures + if: ${{ inputs.fixtures != '' }} + run: docker compose exec -T web src/manage.py loaddata ${{ inputs.fixtures }} + - name: Create superuser + run: | + SUPERUSER="${{ inputs.superuser || 'admin' }}" + WEB_SERVICE="${{ inputs.web_service || 'web' }}" + docker compose exec -T $WEB_SERVICE src/manage.py createsuperuser --username $SUPERUSER --email $SUPERUSER@admin.nl --no-input + - name: Check main page + run: | + curl_status=$(curl -w '%{http_code}' -o /dev/null -s http://localhost:8000/) + if [[ $curl_status != 200 ]]; then + printf "Index page responds with ${curl_status} status.\r\n\r\n" >&2 + curl -i http://localhost:8000 + exit 1 + fi \ No newline at end of file