Skip to content

Merge pull request #1137 from basics/renovate/all-minor-patch #629

Merge pull request #1137 from basics/renovate/all-minor-patch

Merge pull request #1137 from basics/renovate/all-minor-patch #629

Workflow file for this run

name: Main
on:
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
install:
if: "!contains(github.event.head_commit.message, 'skip ci')"
name: Install
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
node: [20]
steps:
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Checkout Repo
uses: actions/checkout@v4
- name: cache node_modules
uses: actions/cache@v4
id: cache
with:
path: |
node_modules
key: ${{ matrix.os }}-node-v${{ matrix.node }}-deps-${{ hashFiles(format('{0}{1}', github.workspace, '/package-lock.json')) }}
- name: Install Dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: npm ci
- name: Install Playwright
run: npx playwright install --with-deps
- name: Lint
run: npm run lint
- name: Test
run: npm run test
semantic-version:
name: Semantic Release
needs: install
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
node: [20]
steps:
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Checkout Repo
uses: actions/checkout@v4
- name: cache node_modules
uses: actions/cache@v4
id: cache
with:
path: node_modules
key: ${{ matrix.os }}-node-v${{ matrix.node }}-deps-${{ hashFiles(format('{0}{1}', github.workspace, '/package-lock.json')) }}
- name: Versioning
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
npx -p @nuxt/module-builder -p semantic-release -p @semantic-release/git -p @semantic-release/changelog -p @semantic-release/exec -p @semantic-release/github semantic-release --provider=github --debug=true
build-playground:
name: Build (Playground)
needs: semantic-version
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
node: [20]
steps:
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Checkout Repo
uses: actions/checkout@v4
- name: cache node_modules
uses: actions/cache@v4
id: cache
with:
path: node_modules
key: ${{ matrix.os }}-node-v${{ matrix.node }}-deps-${{ hashFiles(format('{0}{1}', github.workspace, '/package-lock.json')) }}
- name: Build
run: |
npm run generate
touch playground/dist/.nojekyll
env:
BASE_URL: /nuxt-booster/playground/
- name: Archive Production Artifact
uses: actions/upload-artifact@v4
with:
name: playgroundArtifact
path: playground/dist
build-docs:
name: Build (Docs)
needs: semantic-version
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
node: [20]
steps:
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Checkout Repo
uses: actions/checkout@v4
- name: cache docs/node_modules
uses: actions/cache@v4
id: cache
with:
path: |
node_modules
key: ${{ matrix.os }}-node-v${{ matrix.node }}-deps-${{ hashFiles(format('{0}{1}', github.workspace, '/package-lock.json')) }}
- name: Build
run: |
npm run docs:build
touch docs/.vitepress/dist/.nojekyll
env:
BASE_URL: /nuxt-booster/
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Archive Production Artifact
uses: actions/upload-artifact@v4
with:
name: docsArtifact
path: docs/.vitepress/dist
deploy-ghpages:
name: Deploy (GH-Pages)
needs: [build-docs, build-playground]
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
node: [20]
steps:
- name: Download Artifact (Docs)
uses: actions/download-artifact@v4
with:
name: docsArtifact
path: public
- name: Download Artifact (Playground)
uses: actions/download-artifact@v4
with:
name: playgroundArtifact
path: public/playground
- name: Deploy to GH-Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: public
# cname:
# report-sitespeed:
# needs: deploy-ghpages
# runs-on: ${{ matrix.os }}
# name: Running sitespeed.io
# strategy:
# matrix:
# os: [ubuntu-latest]
# node: [20]
# steps:
# - name: docker pull
# run: |
# docker pull sitespeedio/sitespeed.io:20.0.0
# - name: Checkout Repo
# uses: actions/checkout@v4
# - name: Start throttle 3g
# run: |
# npm install @sitespeed.io/throttle -g
# throttle 3g
# - name: Running sitespeed.io container with arguments and optional Docker options
# run: |
# docker run -v "$(pwd):/sitespeed.io" sitespeedio/sitespeed.io:20.0.0 https://basics.github.io/nuxt-booster/playground/ --budget.configPath .github/budgets/sitespeed.json -n 3 -b chrome --mobile --summary-detail --outputFolder sitespeed-report/nuxt-booster
# - name: Stop throttle 3g
# run: |
# npm install @sitespeed.io/throttle -g
# throttle stop
# - name: Archive Sitespeed Report
# uses: actions/upload-artifact@v4
# with:
# name: sitespeedReportArtifact
# path: sitespeed-report
# deploy-ghpages-report:
# name: Deploy (GH-Pages Report)
# needs: [report-sitespeed]
# runs-on: ${{ matrix.os }}
# strategy:
# matrix:
# os: [ubuntu-latest]
# node: [20]
# steps:
# - name: Download Artifact (Sitespeed)
# uses: actions/download-artifact@v4
# with:
# name: sitespeedReportArtifact
# path: public/reports/sitespeed
# - name: Deploy to GH-Pages
# uses: peaceiris/actions-gh-pages@v3
# with:
# github_token: ${{ secrets.GITHUB_TOKEN }}
# publish_dir: public
# cname:
# keep_files: true