Как я должен развернуть свое приложение полного стека. 2 разных git-репозитория или 2 разных сервиса приложений azure
Так что я отвечаю за фронтенд с angular этого веб-приложения, в то время как кто-то другой делает бэкенд с django. Я пытаюсь внедрить CI/CD и развернуть это приложение в azure с помощью действий на github, но я не знаю, как сделать это эффективно.
Я создал репо на github и инициализировал папки frontend и backends по отдельности и поместил код в ветку dev в моем репо на git, затем создал учетную запись azure и создал resources-gp, а также 1 службу приложений azure и подключил мое репо на github к нему и выбрал python в качестве рабочего процесса, и оно было подключено, но в моем репо на github я вижу эту ошибку: Github error Github та же ошибка
Здесь фронтенд и бэкенд находятся в одном репо, но при создании рабочего процесса я указал только python, я предполагаю, что это только для бэкенда, но даже несмотря на это я все равно вижу эти ошибки выше.
Может ли кто-нибудь мне помочь?
Для создания и развертывания приложения Angular + Django выполните следующие шаги:
Добавьте в yml-файл следующие настройки и сборку фронтенда с использованием Node.js и Angular:
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '20.x'
- name: Install and build Angular frontend
working-directory: angular-17-crud-example-master
run: |
npm install
npm run build --prod
mv dist/* ../post-back-do-front-backend-master/static/
Я ссылался на эти ссылки для интеграции frontend и backend с помощью Angular и Django.
После создания приложения Angular статические файлы перемещаются в папку static
бэкенда Django:
mv dist/* ../post-back-do-front-backend-master/static/
Затем добавьте миграции баз данных Django :
- name: Run Django migrations
working-directory: post-back-do-front-backend-master
run: |
source venv/bin/activate
python manage.py makemigrations
python manage.py migrate
Объедините Frontend и Backend в zip-файл:
- name: Prepare deployment package
run: |
zip -r release.zip post-back-do-front-backend-master
Измените конфигурацию артефакта развертывания следующим образом :
name: Upload artifact uses: actions/upload-artifact@v3 with: name: fullstack-app path: release.zip
Ниже приведен мой пример YAML-файла GitHub Actions для создания и развертывания Angular frontend с Django backend в Azure Web App:
name: Build and deploy Angular and Django app to Azure Web App
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '20.x'
- name: Install and build Angular frontend
working-directory: angular-17-crud-example-master
run: |
npm install
npm run build --prod
mv dist/* ../post-back-do-front-backend-master/static/
- name: Set up Python environment
uses: actions/setup-python@v4
with:
python-version: '3.9'
- name: Install backend dependencies
working-directory: post-back-do-front-backend-master
run: |
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
- name: Run Django migrations
working-directory: post-back-do-front-backend-master
run: |
source venv/bin/activate
python manage.py makemigrations
python manage.py migrate
- name: Prepare deployment package
run: |
zip -r release.zip post-back-do-front-backend-master
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: fullstack-app
path: release.zip
deploy:
runs-on: ubuntu-latest
needs: build
environment:
name: 'Production'
steps:
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: fullstack-app
- name: Unzip artifact
run: unzip release.zip
- name: Login to Azure
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Deploy to Azure Web App
id: deploy-to-webapp
uses: azure/webapps-deploy@v2
with:
app-name: 'tejatyuu78888trrr'
slot-name: 'Production'
publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE }}
package: post-back-do-front-backend-master
Вывод: