name: Deploy Demo to GitHub Pages on: push: branches: [ main ] workflow_dispatch: # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. concurrency: group: "pages" cancel-in-progress: false jobs: build: runs-on: ubuntu-latest steps: - name: Checkout 🛎️ uses: actions/checkout@v4 - name: Setup Node.js 🔧 uses: actions/setup-node@v3 with: node-version: '20' cache: 'npm' - name: Install dependencies 📦 run: npm install --legacy-peer-deps - name: Build project 🏗️ run: | npm run build - name: Build Angular demo 🏗️ run: | cd demo/brainy-angular-demo npm install --legacy-peer-deps npm run build - name: Prepare deployment 📦 run: | mkdir -p _site mkdir -p _site/demo mkdir -p _site/dist cp demo/index.html _site/index.html cp -r demo/brainy-angular-demo/dist/brainy-angular-demo/* _site/demo/ cp -r dist/* _site/dist/ cp brainy.png _site/ # Copy dist directly to demo/dist for easier access mkdir -p _site/demo/dist cp -r dist/* _site/demo/dist/ - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: _site deploy: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest needs: build steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4