name: Continuous integration on: push: branches: [ master ] pull_request: schedule: # Run every 15 minutes of every hour, starting at 5 minutes (5m, 20m, 35m, 50m). # The slight offset is there to try and avoid the high load times. - cron: '5/15 * * * *' # Make sure jobs cannot overlap (e.g. one from push and one from schedule). concurrency: group: pages-ci cancel-in-progress: true jobs: build: name: Build and deploy to GitHub Pages runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Node.js 16.x uses: actions/setup-node@v4 with: node-version: 16.x cache: 'npm' - name: Install dependencies run: npm ci - name: Build the static content using npm run: npm run build - name: Fetch pull request data (godot) run: npm run compose-db -- repo:godot env: GRAPHQL_TOKEN: ${{ secrets.GRAPHQL_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Fetch pull request data (godot-docs) run: npm run compose-db -- repo:godot-docs env: GRAPHQL_TOKEN: ${{ secrets.GRAPHQL_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Archive production artifacts uses: actions/upload-artifact@v4 with: name: web-static path: out - name: Deploy to GitHub Pages 🚀 if: github.event_name != 'pull_request' uses: JamesIves/github-pages-deploy-action@v4 with: branch: gh-pages folder: out # Configure the commit author. git-config-name: 'Godot Organization' git-config-email: '<>' # Don't keep the history. single-commit: true