name: studio-nuxt-build run-name: studio nuxt build on: # Runs on pushes targeting the default branch push: branches: ["main"] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # Add write workflow permissions permissions: contents: write # Allow one concurrent deployment concurrency: group: "pages" cancel-in-progress: true jobs: # Build job build-and-deploy: if: startsWith(github.event.head_commit.message, 'docs:') runs-on: ${{ matrix.os }} defaults: run: working-directory: docs strategy: matrix: os: [ubuntu-latest] node: [18] steps: - name: Checkout uses: actions/checkout@v3 - name: Identify package manager id: pkgman run: | cache=`[ -f "docs/pnpm-lock.yaml" ] && echo "pnpm" || ([ -f "docs/package-lock.json" ] && echo "npm" || ([ -f "docs/yarn.lock" ] && echo "yarn" || echo ""))` package_manager=`[ ! -z "$cache" ] && echo "$cache" || echo "pnpm"` echo "cache=$cache" >> $GITHUB_OUTPUT echo "package_manager=$package_manager" >> $GITHUB_OUTPUT - uses: pnpm/action-setup@v2.2.4 if: ${{ steps.pkgman.outputs.package_manager == 'pnpm' }} name: Install pnpm id: pnpm-install with: version: 7 - uses: actions/setup-node@v3 with: version: ${{ matrix.node }} cache: ${{ steps.pkgman.outputs.cache }} - name: Install dependencies run: ${{ steps.pkgman.outputs.package_manager }} install --no-frozen-lockfile - name: Install @nuxthq/studio run: ${{ steps.pkgman.outputs.package_manager }} add -D @nuxthq/studio - name: Create .nuxtrc run: echo 'modules[]=@nuxthq/studio' > .nuxtrc - name: Generate run: ${{ steps.pkgman.outputs.package_manager }} nuxi generate env: NUXT_PUBLIC_STUDIO_API_URL: https://api.nuxt.studio NUXT_PUBLIC_STUDIO_TOKENS: 6222c5e49391ad99e20e3c1b1a475c656436e8b0877c32021147d8727205c440 - name: Add .nojekyll file run: touch .output/public/.nojekyll # Deployment job - name: Deploy 🚀 uses: JamesIves/github-pages-deploy-action@v4 with: folder: docs/.output/public