Skip to content

Commit df462b9

Browse files
committed
Created scripts, code and documentation for client and server.
1 parent 760e40b commit df462b9

File tree

96 files changed

+1409
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+1409
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
2+
# More GitHub Actions for Azure: https://github.com/Azure/actions
3+
# More info on Python, GitHub Actions, and Azure App Service: https://aka.ms/python-webapps-actions
4+
5+
name: Build and deploy Python app to Azure Web App - hvalfangstlinuxwebapp
6+
7+
on:
8+
push:
9+
branches:
10+
- main
11+
workflow_dispatch:
12+
13+
jobs:
14+
build:
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- name: Set up Python version
21+
uses: actions/setup-python@v5
22+
with:
23+
python-version: '3.10'
24+
25+
- name: Create and start virtual environment
26+
run: |
27+
python -m venv venv
28+
source venv/bin/activate
29+
30+
- name: Install dependencies
31+
run: pip install -r server/requirements.txt
32+
33+
# Optional: Add step to run tests here (PyTest, Django test suites, etc.)
34+
35+
- name: Zip artifact for deployment
36+
run: cd server && zip -r ../release.zip ./*
37+
38+
- name: Upload artifact for deployment jobs
39+
uses: actions/upload-artifact@v4
40+
with:
41+
name: python-app
42+
path: |
43+
release.zip
44+
!venv/
45+
46+
deploy:
47+
runs-on: ubuntu-latest
48+
needs: build
49+
environment:
50+
name: 'Production'
51+
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
52+
permissions:
53+
id-token: write #This is required for requesting the JWT
54+
env:
55+
HVALFANGST_TENANT_ID: ${{ secrets.HVALFANGST_TENANT_ID }}
56+
HVALFANGST_API_SERVER_CLIENT_ID: ${{ secrets.HVALFANGST_API_SERVER_CLIENT_ID }}
57+
58+
steps:
59+
- name: Download artifact from build job
60+
uses: actions/download-artifact@v4
61+
with:
62+
name: python-app
63+
64+
- name: Unzip artifact for deployment
65+
run: unzip release.zip -d .
66+
67+
- name: Login to Azure
68+
uses: azure/login@v2
69+
with:
70+
client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_40531D048E714BC9BF1FF2DB2DD35753 }}
71+
tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_336AC753681745D78B7B262945914F63 }}
72+
subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_97162121CF214550B81AF6E0B11ADA2C }}
73+
74+
- name: Check and set environment variables on Azure App Service if not already set
75+
run: |
76+
# Check for HVALFANGST_TENANT_ID and set it if missing
77+
existing_tenant_id=$(az webapp config appsettings list --name hvalfangstlinuxwebapp \
78+
--resource-group hvalfangstresourcegroup \
79+
--query "[?name=='HVALFANGST_TENANT_ID'].value" \
80+
--output tsv)
81+
if [ -z "$existing_tenant_id" ]; then
82+
echo "Setting HVALFANGST_TENANT_ID..."
83+
az webapp config appsettings set --name hvalfangstlinuxwebapp \
84+
--resource-group hvalfangstresourcegroup \
85+
--settings HVALFANGST_TENANT_ID=${{ secrets.HVALFANGST_TENANT_ID }}
86+
else
87+
echo "HVALFANGST_TENANT_ID is already set."
88+
fi
89+
90+
# Check for HVALFANGST_API_SERVER_CLIENT_ID and set it if missing
91+
existing_client_id=$(az webapp config appsettings list --name hvalfangstlinuxwebapp \
92+
--resource-group hvalfangstresourcegroup \
93+
--query "[?name=='HVALFANGST_API_SERVER_CLIENT_ID'].value" \
94+
--output tsv)
95+
if [ -z "$existing_client_id" ]; then
96+
echo "Setting HVALFANGST_API_SERVER_CLIENT_ID..."
97+
az webapp config appsettings set --name hvalfangstlinuxwebapp \
98+
--resource-group hvalfangstresourcegroup \
99+
--settings HVALFANGST_API_SERVER_CLIENT_ID=${{ secrets.HVALFANGST_API_SERVER_CLIENT_ID }}
100+
else
101+
echo "HVALFANGST_API_SERVER_CLIENT_ID is already set."
102+
fi
103+
104+
105+
- name: 'Deploy to Azure Web App'
106+
uses: azure/webapps-deploy@v3
107+
id: deploy-to-webapp
108+
with:
109+
app-name: 'hvalfangstlinuxwebapp'
110+
slot-name: 'Production'

.gitignore

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
client/.env_oauth
2+
/infra/terraform.tfvars
3+
/.idea/.gitignore
4+
/infra/.terraform.lock.hcl
5+
/.idea/azure-oauth2-auth-code-flow-fastapi.iml
6+
/.idea/azure-oauth2-auth-code-flow-fastapi2.iml
7+
/.idea/codeStyles/codeStyleConfig.xml
8+
/infra/.terraform/providers/registry.terraform.io/hashicorp/azurerm/4.4.0/windows_amd64/LICENSE.txt
9+
/.idea/misc.xml
10+
/.idea/modules.xml
11+
/.idea/codeStyles/Project.xml
12+
/pu.xml
13+
/infra/terraform.tfstate
14+
/infra/terraform.tfstate.backup
15+
/infra/.terraform/providers/registry.terraform.io/hashicorp/azurerm/4.4.0/windows_amd64/terraform-provider-azurerm_v4.4.0_x5.exe
16+
/.idea/vcs.xml

0 commit comments

Comments
 (0)