frontend_nyla/.github/workflows/int_poweron-nyla-int.yml
2025-06-04 12:52:21 +02:00

64 lines
2.3 KiB
YAML

name: Deploy React App to Azure Web App
on:
push:
branches:
- int # oder dein Branch
workflow_dispatch: # Ermöglicht manuelles Triggern
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
cache: 'npm' # Aktiviert Caching für schnellere Builds
- name: Install dependencies
run: |
npm ci
npm install express
- name: Build React app
run: npm run build
- name: Create server.js for Azure
run: |
# Create ES module compatible server.js directly in root
echo "import express from 'express';" > server.js
echo "import path from 'path';" >> server.js
echo "import { fileURLToPath } from 'url';" >> server.js
echo "" >> server.js
echo "const __filename = fileURLToPath(import.meta.url);" >> server.js
echo "const __dirname = path.dirname(__filename);" >> server.js
echo "" >> server.js
echo "const app = express();" >> server.js
echo "" >> server.js
echo "app.use(express.static(path.join(__dirname, 'dist')));" >> server.js
echo "" >> server.js
echo "app.get('/*', function(req, res) {" >> server.js
echo " res.sendFile(path.join(__dirname, 'dist', 'index.html'));" >> server.js
echo "});" >> server.js
echo "" >> server.js
echo "const port = process.env.PORT || 8080;" >> server.js
echo "app.listen(port, '0.0.0.0', () => {" >> server.js
echo " console.log(\`Server running on port \${port}\`);" >> server.js
echo " console.log(\`Serving from: \${__dirname}/dist\`);" >> server.js
echo "});" >> server.js
# Verify the file was created
echo "=== server.js content ==="
cat server.js
- name: 'Deploy to Azure Web App'
uses: azure/webapps-deploy@v3
with:
app-name: 'poweron-nyla'
publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_D6C9359A57C5448A8C0BFA2D4C4B2068 }}
clean: true