name: Deploy React App to Azure Web App on: push: branches: - int workflow_dispatch: jobs: build: runs-on: ubuntu-latest permissions: contents: read #This is required for actions/checkout steps: - uses: actions/checkout@v4 - name: Set up Node.js version 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