Skip to content

feat: improve console controls and navigation #50

feat: improve console controls and navigation

feat: improve console controls and navigation #50

Workflow file for this run

name: Deploy web app and docs
on:
push:
branches:
- main
workflow_dispatch:
permissions:
actions: write
contents: read
pages: write
id-token: write
concurrency:
group: github-pages
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
outputs:
artifact_id: ${{ steps.pages-artifact.outputs.artifact_id }}
steps:
- name: Check out repository
uses: actions/checkout@v6
- name: Configure GitHub Pages
id: pages
uses: actions/configure-pages@v5
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: 3.47.0
cache: true
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
cache: pip
cache-dependency-path: requirements-docs.txt
- name: Install dependencies
run: |
flutter pub get
python -m pip install -r requirements-docs.txt
- name: Test app
run: flutter test
# A single timestamp shared by every dart-define below, so all platforms
# in one release report the same build time.
- name: Stamp build time
shell: bash
run: echo "BUILD_TIME=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$GITHUB_ENV"
- name: Build Admincraft web
run: >-
flutter build web --release --wasm
--base-href "${{ steps.pages.outputs.base_path }}/"
--dart-define=ADMINCRAFT_BUILD_TIME=${{ env.BUILD_TIME }}
--dart-define=ADMINCRAFT_GOOGLE_WEB_CLIENT_ID=${{ secrets.ADMINCRAFT_GOOGLE_WEB_CLIENT_ID }}
- name: Build documentation inside the web app artifact
run: python -m mkdocs build --strict --site-dir build/web/docs
env:
MKDOCS_SITE_URL: "${{ steps.pages.outputs.base_url }}/docs/"
- name: Keep GitHub Pages from applying Jekyll processing
run: touch build/web/.nojekyll
- name: Upload GitHub Pages artifact
id: pages-artifact
uses: actions/upload-pages-artifact@v4
with:
path: build/web
retention-days: 1
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
- name: Delete deployed Pages artifact
if: success()
env:
GH_TOKEN: ${{ github.token }}
ARTIFACT_ID: ${{ needs.build.outputs.artifact_id }}
run: >-
gh api --method DELETE
"repos/${{ github.repository }}/actions/artifacts/$ARTIFACT_ID"