From e03e92098815b2b663f43cda446a1240a6e884e2 Mon Sep 17 00:00:00 2001 From: Dave Mangold Date: Mon, 10 Jun 2024 15:37:39 -0700 Subject: [PATCH 1/5] Add or update the Azure App Service build and deployment workflow config --- .../workflows/main_voyager-delta-flyer-2.yml | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 .github/workflows/main_voyager-delta-flyer-2.yml diff --git a/.github/workflows/main_voyager-delta-flyer-2.yml b/.github/workflows/main_voyager-delta-flyer-2.yml new file mode 100644 index 000000000..1a0eb5125 --- /dev/null +++ b/.github/workflows/main_voyager-delta-flyer-2.yml @@ -0,0 +1,78 @@ +# 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 - voyager-delta-flyer-2 + +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@v1 + with: + python-version: '3.12' + + - name: Create and start virtual environment + run: | + python -m venv venv + source venv/bin/activate + + - name: Install dependencies + run: pip install -r requirements.txt + + # Optional: Add step to run tests here (PyTest, Django test suites, etc.) + + - name: Zip artifact for deployment + run: zip release.zip ./* -r + + - name: Upload artifact for deployment jobs + uses: actions/upload-artifact@v3 + with: + name: python-app + path: | + release.zip + !venv/ + + deploy: + runs-on: ubuntu-latest + needs: build + environment: + name: 'Production' + url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} + permissions: + id-token: write #This is required for requesting the JWT + + steps: + - name: Download artifact from build job + uses: actions/download-artifact@v3 + with: + name: python-app + + - name: Unzip artifact for deployment + run: unzip release.zip + + + - name: Login to Azure + uses: azure/login@v1 + with: + client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_98589CBB1F784B2D9E24A64DA2EADA0E }} + tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_A14A3F168BD34561ACA312EF4F64A552 }} + subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_3BA8878CDA5245A28B28B37572979802 }} + + - name: 'Deploy to Azure Web App' + uses: azure/webapps-deploy@v2 + id: deploy-to-webapp + with: + app-name: 'voyager-delta-flyer-2' + slot-name: 'Production' + \ No newline at end of file From add31734cb56f0ff6d28652d314f61b38168b5e2 Mon Sep 17 00:00:00 2001 From: Dave Mangold Date: Mon, 10 Jun 2024 16:49:22 -0700 Subject: [PATCH 2/5] Update app.py --- app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.py b/app.py index 3d1808cf6..43f05d61a 100644 --- a/app.py +++ b/app.py @@ -21,7 +21,7 @@ def hello(): name = request.form.get('name') if name: - print('Request for hello page received with name=%s' % name) + print('Request for hello page received with name=%s' % name) return render_template('hello.html', name = name) else: print('Request for hello page received with no name or blank name -- redirecting') From 03b067f87b8be1f6f46c2a1db71aa0d87876a3d6 Mon Sep 17 00:00:00 2001 From: Dave Mangold Date: Mon, 10 Jun 2024 17:00:52 -0700 Subject: [PATCH 3/5] Create startup.txt --- startup.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 startup.txt diff --git a/startup.txt b/startup.txt new file mode 100644 index 000000000..24e5a4bba --- /dev/null +++ b/startup.txt @@ -0,0 +1 @@ +gunicorn --bind=0.0.0.0 --workers=4 flask run -p 80 From 42230cfc6e25010cf175ba33ca9149326111f15e Mon Sep 17 00:00:00 2001 From: Dave Mangold Date: Wed, 12 Jun 2024 07:36:23 -0700 Subject: [PATCH 4/5] Add or update the Azure App Service build and deployment workflow config --- .../main_voyager-delta-flyer-2(staging).yml | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 .github/workflows/main_voyager-delta-flyer-2(staging).yml diff --git a/.github/workflows/main_voyager-delta-flyer-2(staging).yml b/.github/workflows/main_voyager-delta-flyer-2(staging).yml new file mode 100644 index 000000000..a12f9f3a5 --- /dev/null +++ b/.github/workflows/main_voyager-delta-flyer-2(staging).yml @@ -0,0 +1,78 @@ +# 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 - voyager-delta-flyer-2 + +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@v1 + with: + python-version: '3.12' + + - name: Create and start virtual environment + run: | + python -m venv venv + source venv/bin/activate + + - name: Install dependencies + run: pip install -r requirements.txt + + # Optional: Add step to run tests here (PyTest, Django test suites, etc.) + + - name: Zip artifact for deployment + run: zip release.zip ./* -r + + - name: Upload artifact for deployment jobs + uses: actions/upload-artifact@v3 + with: + name: python-app + path: | + release.zip + !venv/ + + deploy: + runs-on: ubuntu-latest + needs: build + environment: + name: 'staging' + url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} + permissions: + id-token: write #This is required for requesting the JWT + + steps: + - name: Download artifact from build job + uses: actions/download-artifact@v3 + with: + name: python-app + + - name: Unzip artifact for deployment + run: unzip release.zip + + + - name: Login to Azure + uses: azure/login@v1 + with: + client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_EEA023DF31B34974A801B1EE9CBFDDE6 }} + tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_9C9B37E988B7450095472C5C473583F2 }} + subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_AA72FDC7586441D5A185FBC79EEA83E5 }} + + - name: 'Deploy to Azure Web App' + uses: azure/webapps-deploy@v2 + id: deploy-to-webapp + with: + app-name: 'voyager-delta-flyer-2' + slot-name: 'staging' + \ No newline at end of file From 1f9be2308e41e4e89e266f34d337adc04de34b64 Mon Sep 17 00:00:00 2001 From: Dave Mangold Date: Wed, 12 Jun 2024 07:50:27 -0700 Subject: [PATCH 5/5] Add or update the Azure App Service build and deployment workflow config --- .github/workflows/main_voyager-delta-flyer-2(staging).yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main_voyager-delta-flyer-2(staging).yml b/.github/workflows/main_voyager-delta-flyer-2(staging).yml index a12f9f3a5..a6565ecb1 100644 --- a/.github/workflows/main_voyager-delta-flyer-2(staging).yml +++ b/.github/workflows/main_voyager-delta-flyer-2(staging).yml @@ -65,9 +65,9 @@ jobs: - name: Login to Azure uses: azure/login@v1 with: - client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_EEA023DF31B34974A801B1EE9CBFDDE6 }} - tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_9C9B37E988B7450095472C5C473583F2 }} - subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_AA72FDC7586441D5A185FBC79EEA83E5 }} + client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_345E1FD5CAA540F69D27EBF79F3340F5 }} + tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_03B0DA664CB8411781D1664298A87E44 }} + subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_52AC2D7C7559417C8FFB9B55E4C9A95A }} - name: 'Deploy to Azure Web App' uses: azure/webapps-deploy@v2