Skip to content

Commit

Permalink
chore(#1): add ci workflow
Browse files Browse the repository at this point in the history
- add setup job
- add lint job
- add build job for front and back end

closes #1
  • Loading branch information
mari1912 committed Jun 24, 2024
1 parent 6b719a8 commit 020237a
Show file tree
Hide file tree
Showing 2 changed files with 128 additions and 0 deletions.
127 changes: 127 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
name: CI for KernelCI Dashboard

on:
push:
branches: [main]
pull_request:
types:
- opened
- synchronize
- reopened
- ready_for_review

concurrency:
group: ci-check-${{ github.ref }}
cancel-in-progress: true

env:
CI: true

jobs:
setup-node:
if: github.event.pull_request.draft != true
runs-on: ubuntu-latest
timeout-minutes: 10
outputs:
paths-node_modules: ${{ steps.paths-node_modules.outputs.paths }}
steps:
- uses: actions/checkout@v4

- name: Cache node_modules
uses: actions/cache@v4
id: cache-node_modules
with:
key: node_modules-${{ runner.os }}-${{ hashFiles('./dashboard/pnpm-lock.yaml') }}
path: ./dashboard/node_modules

- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 9

- name: Installing dependencies with pnpm
if: steps.cache-node_modules.outputs.cache-hit != 'true'
run: pnpm install --frozen-lockfile
working-directory: ./dashboard

lint-js:
if: github.event.pull_request.draft != true
needs: setup-node
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4

- name: Fetch node_modules
uses: actions/cache@v4
id: fetch-node_modules
with:
key: node_modules-${{ runner.os }}-${{ hashFiles('./dashboard/pnpm-lock.yaml') }}
path: ./dashboard/node_modules

- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 9

- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'

- name: Run eslint
run: pnpm lint
working-directory: ./dashboard

build-front:
if: github.event.pull_request.draft != true
needs: setup-node
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4

- name: Fetch node_modules
uses: actions/cache@v4
id: fetch-node_modules
with:
key: node_modules-${{ runner.os }}-${{ hashFiles('./dashboard/pnpm-lock.yaml') }}
path: ./dashboard/node_modules

- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 9

- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'

- name: Run build
run: pnpm build
working-directory: ./dashboard

build-django:
if: github.event.pull_request.draft != true
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Install Poetry
run: |
python -m pip install --upgrade pip
pip install poetry
- name: Install dependencies
run: poetry install
working-directory: ./backend

- name: Run migrations
run: poetry run python manage.py migrate --no-input
working-directory: ./backend
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
18

0 comments on commit 020237a

Please sign in to comment.