Fix bug: Add '/' before footer links #25
This file contains hidden or 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
| # Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy | |
| # More GitHub Actions for Azure: https://github.com/Azure/actions | |
| # More info on Python, GitHub Actions, and Azure App Service: https://aka.ms/python-webapps-actions | |
| name: Build and deploy Python app to Azure Web App - expertsystem | |
| on: | |
| push: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python version | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Create and activate virtual environment | |
| run: | | |
| python -m venv venv | |
| source venv/bin/activate | |
| pip install -r requirements.txt | |
| - name: Run tests | |
| run: | | |
| source venv/bin/activate | |
| python manage.py test | |
| - name: Collect static files | |
| run: | | |
| source venv/bin/activate | |
| python manage.py collectstatic --noinput | |
| - name: Run database migrations | |
| run: | | |
| source venv/bin/activate | |
| python manage.py migrate | |
| - name: Create Django Admin User | |
| run: | | |
| source venv/bin/activate | |
| python manage.py shell <<EOF | |
| from django.contrib.auth.models import User | |
| if not User.objects.filter(username="${{ secrets.DJANGO_ADMIN_USERNAME }}").exists(): | |
| User.objects.create_superuser( | |
| username="${{ secrets.DJANGO_ADMIN_USERNAME }}", | |
| email="${{ secrets.DJANGO_ADMIN_EMAIL }}", | |
| password="${{ secrets.DJANGO_ADMIN_PASSWORD }}" | |
| ) | |
| EOF | |
| # Optional: Add step to run tests here (PyTest, Django test suites, etc.) | |
| - name: Zip artifact for deployment | |
| run: | | |
| source venv/bin/activate | |
| zip release.zip ./* -r -x "venv/*" # Exclude the virtual environment | |
| - name: Upload artifact for deployment jobs | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: python-app | |
| path: release.zip | |
| deploy: | |
| runs-on: ubuntu-latest | |
| needs: build | |
| environment: | |
| name: 'Production' | |
| url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} | |
| steps: | |
| - name: Download artifact from build job | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: python-app | |
| - name: Unzip artifact for deployment | |
| run: unzip release.zip | |
| - name: 'Deploy to Azure Web App' | |
| uses: azure/webapps-deploy@v3 | |
| id: deploy-to-webapp | |
| with: | |
| app-name: 'expertsystem' | |
| slot-name: 'Production' | |
| publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_F72829EB566D4835B99A9783E0389B18 }} |