Skip to content

Merge pull request #9489 from weseek/imprv/159173-159174-independent-… #21756

Merge pull request #9489 from weseek/imprv/159173-159174-independent-…

Merge pull request #9489 from weseek/imprv/159173-159174-independent-… #21756

Workflow file for this run

name: Node CI for app development
on:
push:
branches-ignore:
- release/**
- rc/**
- changeset-release/**
paths:
- .github/mergify.yml
- .github/workflows/ci-app.yml
- .eslint*
- tsconfig.base.json
- turbo.json
- pnpm-lock.yaml
- package.json
- apps/app/**
- '!apps/app/docker/**'
- packages/**
pull_request:
types: [opened, reopened, synchronize]
paths:
- .github/mergify.yml
- .github/workflows/ci-app.yml
- .eslint*
- tsconfig.base.json
- turbo.json
- pnpm-lock.yaml
- package.json
- apps/app/**
- '!apps/app/docker/**'
- packages/**
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
ci-app-lint:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Cache/Restore dist
uses: actions/cache@v4
with:
path: |
**/.turbo
**/dist
**/node_modules/.cache/turbo
key: dist-ci-app-${{ runner.OS }}-node${{ matrix.node-version }}-${{ github.sha }}
restore-keys: |
dist-ci-app-${{ runner.OS }}-node${{ matrix.node-version }}-
- name: Install dependencies
run: |
pnpm add turbo --global
pnpm install --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 }}
ci-app-test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x]
services:
mongodb:
image: mongo:6.0
ports:
- 27017/tcp
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Cache/Restore dist
uses: actions/cache@v4
with:
path: |
**/.turbo
**/dist
**/node_modules/.cache/turbo
key: dist-ci-app-${{ runner.OS }}-node${{ matrix.node-version }}-${{ github.sha }}
restore-keys: |
dist-ci-app-${{ runner.OS }}-node${{ matrix.node-version }}-
- name: Install dependencies
run: |
pnpm add turbo --global
pnpm install --frozen-lockfile
- name: Test
run: |
turbo run test --filter=!@growi/slackbot-proxy --env-mode=loose
env:
MONGO_URI: mongodb://localhost:${{ job.services.mongodb.ports['27017'] }}/growi_test
- name: Upload coverage report as artifact
uses: actions/upload-artifact@v4
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 }}
ci-app-launch-dev:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x]
services:
mongodb:
image: mongo:6.0
ports:
- 27017/tcp
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Cache/Restore dist
uses: actions/cache@v4
with:
path: |
**/.turbo
**/dist
**/node_modules/.cache/turbo
key: dist-ci-app-${{ runner.OS }}-node${{ matrix.node-version }}-${{ github.sha }}
restore-keys: |
dist-ci-app-${{ runner.OS }}-node${{ matrix.node-version }}-
- name: Install dependencies
run: |
pnpm add turbo --global
pnpm install --frozen-lockfile
- name: turbo run launch-dev:ci
working-directory: ./apps/app
run: |
cp config/ci/.env.local.for-ci .env.development.local
turbo run launch-dev:ci --env-mode=loose
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 }}