Skip to content

Merge pull request #24 from weseek/feat/cms #59

Merge pull request #24 from weseek/feat/cms

Merge pull request #24 from weseek/feat/cms #59

Workflow file for this run

name: Node CI for app development
on:
push:
branches-ignore:
- release/**
- rc/**
paths:
- .github/workflows/ci-app.yml
- .eslint*
- tsconfig.base.json
- turbo.json
- yarn.lock
- package.json
- apps/app/**
- '!apps/app/docker/**'
- packages/**
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
cache-dependency-path: '**/yarn.lock'
- name: Cache/Restore node_modules
uses: actions/cache@v3
with:
path: |
**/node_modules
key: node_modules-${{ runner.OS }}-node${{ matrix.node-version }}-${{ hashFiles('**/yarn.lock') }}-${{ hashFiles('apps/app/package.json') }}
restore-keys: |
node_modules-${{ runner.OS }}-node${{ matrix.node-version }}-${{ hashFiles('**/yarn.lock') }}-
node_modules-${{ runner.OS }}-node${{ matrix.node-version }}-
- name: Restore dist
uses: actions/cache/restore@v3
with:
path: |
**/.turbo
**/dist
key: dist-app-ci-${{ runner.OS }}-node${{ matrix.node-version }}-${{ hashFiles('node_modules/.cache/turbo/*-meta.json') }}
restore-keys: |
dist-app-ci-${{ runner.OS }}-node${{ matrix.node-version }}-
- name: Install dependencies
run: |
yarn global add turbo
yarn global add node-gyp
yarn --frozen-lockfile
- name: Lint
run: |
turbo run lint --filter=!@growi/slackbot-proxy
- name: Slack Notification
uses: weseek/ghaction-slack-notification@master
if: failure()
with:
type: ${{ job.status }}
job_name: '*Node CI for growi - lint (${{ matrix.node-version }})*'
channel: '#ci'
isCompactMode: true
url: ${{ secrets.SLACK_WEBHOOK_URL }}
- name: Cache dist
uses: actions/cache/save@v3
with:
path: |
**/.turbo
**/dist
key: dist-app-ci-${{ runner.OS }}-node${{ matrix.node-version }}-${{ hashFiles('node_modules/.cache/turbo/*-meta.json') }}
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]
services:
mongodb:
image: mongo:6.0
ports:
- 27017/tcp
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
cache-dependency-path: '**/yarn.lock'
- name: Cache/Restore node_modules
id: cache-dependencies
uses: actions/cache@v3
with:
path: |
**/node_modules
key: node_modules-${{ runner.OS }}-node${{ matrix.node-version }}-${{ hashFiles('**/yarn.lock') }}-${{ hashFiles('apps/app/package.json') }}
restore-keys: |
node_modules-${{ runner.OS }}-node${{ matrix.node-version }}-${{ hashFiles('**/yarn.lock') }}-
node_modules-${{ runner.OS }}-node${{ matrix.node-version }}-
- name: Restore dist
uses: actions/cache/restore@v3
with:
path: |
**/.turbo
**/dist
key: dist-app-ci-${{ runner.OS }}-node${{ matrix.node-version }}-${{ hashFiles('node_modules/.cache/turbo/*-meta.json') }}
restore-keys: |
dist-app-ci-${{ runner.OS }}-node${{ matrix.node-version }}-
- name: Install dependencies
run: |
yarn global add turbo
yarn global add node-gyp
yarn --frozen-lockfile
- name: Test
run: |
turbo run test --filter=!@growi/slackbot-proxy
env:
MONGO_URI: mongodb://localhost:${{ job.services.mongodb.ports['27017'] }}/growi_test
- name: Upload coverage report as artifact
uses: actions/upload-artifact@v3
with:
name: Coverage Report
path: |
apps/app/coverage
packages/remark-growi-directive/coverage
- name: Slack Notification
uses: weseek/ghaction-slack-notification@master
if: failure()
with:
type: ${{ job.status }}
job_name: '*Node CI for growi - test (${{ matrix.node-version }})*'
channel: '#ci'
isCompactMode: true
url: ${{ secrets.SLACK_WEBHOOK_URL }}
- name: Cache dist
uses: actions/cache/save@v3
with:
path: |
**/.turbo
**/dist
key: dist-app-ci-${{ runner.OS }}-node${{ matrix.node-version }}-${{ hashFiles('node_modules/.cache/turbo/*-meta.json') }}
launch-dev:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]
services:
mongodb:
image: mongo:6.0
ports:
- 27017/tcp
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
cache-dependency-path: '**/yarn.lock'
- name: Cache/Restore node_modules
id: cache-dependencies
uses: actions/cache@v3
with:
path: |
**/node_modules
key: node_modules-${{ runner.OS }}-node${{ matrix.node-version }}-${{ hashFiles('**/yarn.lock') }}-${{ hashFiles('apps/app/package.json') }}
restore-keys: |
node_modules-${{ runner.OS }}-node${{ matrix.node-version }}-${{ hashFiles('**/yarn.lock') }}-
node_modules-${{ runner.OS }}-node${{ matrix.node-version }}-
- name: Restore dist
uses: actions/cache/restore@v3
with:
path: |
**/.turbo
**/dist
${{ github.workspace }}/apps/app/.next
key: dist-app-dev-${{ runner.OS }}-node${{ matrix.node-version }}-${{ hashFiles('node_modules/.cache/turbo/*-meta.json') }}
restore-keys: |
dist-app-dev-${{ runner.OS }}-node${{ matrix.node-version }}-
- name: Install dependencies
run: |
yarn global add turbo
yarn global add node-gyp
yarn --frozen-lockfile
- name: turbo run dev:ci
working-directory: ./apps/app
run: |
cp config/ci/.env.local.for-ci .env.development.local
turbo run dev:ci
env:
MONGO_URI: mongodb://localhost:${{ job.services.mongodb.ports['27017'] }}/growi_dev
- name: Slack Notification
uses: weseek/ghaction-slack-notification@master
if: failure()
with:
type: ${{ job.status }}
job_name: '*Node CI for growi - launch-dev (${{ matrix.node-version }})*'
channel: '#ci'
isCompactMode: true
url: ${{ secrets.SLACK_WEBHOOK_URL }}
- name: Cache dist
uses: actions/cache/save@v3
with:
path: |
**/.turbo
**/dist
${{ github.workspace }}/apps/app/.next
key: dist-app-dev-${{ runner.OS }}-node${{ matrix.node-version }}-${{ hashFiles('node_modules/.cache/turbo/*-meta.json') }}