name: Build and deploy on: push: branches: [main] workflow_dispatch: permissions: contents: write jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.2' - name: Composer install working-directory: hifi/api run: composer install --no-dev --optimize-autoloader --no-interaction - name: Setup Node uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' cache-dependency-path: hifi-src/package-lock.json - name: npm build working-directory: hifi-src run: | npm ci npm run build - name: Publish build output to deploy branch run: | # Sicherheitsnetz: diese Dateien sind umgebungsspezifisch und dürfen # niemals in irgendeinen Branch gelangen, auch nicht versehentlich. rm -f hifi/api/config/db.php hifi/api/config/setup.php # In ein frisches, vom ausgecheckten Repo getrenntes Verzeichnis kopieren, # damit der Ordner "hifi/" (mit Prefix!) im deploy-Branch landet - das muss # zur bestehenden Plesk-Konfiguration (Dokumentenstamm .../hifi) passen. rm -rf /tmp/deploy-out mkdir -p /tmp/deploy-out/hifi cp -r hifi/. /tmp/deploy-out/hifi/ cd /tmp/deploy-out git init -q -b deploy git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git add -A git commit -q -m "Deploy build from ${GITHUB_SHA::7}" git push --force "https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" HEAD:deploy env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}