Skip to content

[Content] Upload programs. #48

[Content] Upload programs.

[Content] Upload programs. #48

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: βš™οΈ Lint & Build
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the main branch
on:
push:
branches:
- main
- develop
- "releases/**"
tags:
- "**"
pull_request:
branches:
- main
- develop
- "releases/**"
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
init:
name: πŸ— Init
runs-on: ubuntu-latest
steps:
- name: πŸ›ŽοΈ Checkout
uses: actions/checkout@v3
- name: πŸŽ’ Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: πŸ“₯ Install pnpm
uses: pnpm/action-setup@v2
id: pnpm-install
with:
version: 7
run_install: false
- name: πŸ”Ž Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: πŸ’Ύ Setup pnpm cache
uses: actions/cache@v3
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: πŸ“¦ Install Dependencies
run: pnpm install
lint:
name: πŸ§ͺ Lint
runs-on: ubuntu-latest
needs:
- init
steps:
- name: πŸ›ŽοΈ Checkout
uses: actions/checkout@v3
- name: πŸŽ’ Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: πŸ“₯ Install pnpm
uses: pnpm/action-setup@v2
id: pnpm-install
with:
version: 7
run_install: false
- name: πŸ”Ž Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: πŸ’Ύ Setup pnpm cache
uses: actions/cache@v3
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: πŸ“¦ Install Dependencies
run: pnpm install
- name: πŸ§ͺ Run Linter
run: pnpm run lint
build:
name: πŸ”§ Build
runs-on: ubuntu-latest
needs:
- lint
steps:
- name: πŸ›ŽοΈ Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: πŸŽ’ Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: πŸ“₯ Install pnpm
uses: pnpm/action-setup@v2
id: pnpm-install
with:
version: 7
run_install: false
- name: πŸ”Ž Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: πŸ’Ύ Setup pnpm cache
uses: actions/cache@v3
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: πŸ“¦ Install Dependencies
run: pnpm install
- name: πŸ”§ Run Build
run: pnpm run build:prod
- name: πŸš€ Publish to GitHub Pages
if: ${{ contains(github.ref, 'refs/heads/main') }}
uses: JamesIves/[email protected]
with:
branch: gh-pages # The branch the action should deploy to.
folder: dist/ # The folder the action should deploy.