|
@@ -10,31 +10,76 @@ on:
|
|
|
|
|
|
|
|
jobs:
|
|
jobs:
|
|
|
|
|
|
|
|
- lint:
|
|
|
|
|
|
|
+ install-node14:
|
|
|
runs-on: ubuntu-latest
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
- strategy:
|
|
|
|
|
- matrix:
|
|
|
|
|
- node-version: [14.x]
|
|
|
|
|
-
|
|
|
|
|
steps:
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/checkout@v2
|
|
|
|
|
|
|
|
- uses: actions/setup-node@v2
|
|
- uses: actions/setup-node@v2
|
|
|
with:
|
|
with:
|
|
|
- node-version: ${{ matrix.node-version }}
|
|
|
|
|
|
|
+ node-version: 14.x
|
|
|
cache: 'yarn'
|
|
cache: 'yarn'
|
|
|
cache-dependency-path: '**/yarn.lock'
|
|
cache-dependency-path: '**/yarn.lock'
|
|
|
|
|
|
|
|
|
|
+ - name: Cache/Restore node_modules
|
|
|
|
|
+ id: cache-dependencies
|
|
|
|
|
+ uses: actions/cache@v2
|
|
|
|
|
+ with:
|
|
|
|
|
+ path: |
|
|
|
|
|
+ **/node_modules
|
|
|
|
|
+ key: ${{ runner.OS }}-node_modules-14.x-${{ hashFiles('**/yarn.lock') }}
|
|
|
|
|
+ restore-keys: |
|
|
|
|
|
+ ${{ runner.os }}-node_modules-14.x-
|
|
|
|
|
+
|
|
|
- name: lerna bootstrap
|
|
- name: lerna bootstrap
|
|
|
run: |
|
|
run: |
|
|
|
npx lerna bootstrap
|
|
npx lerna bootstrap
|
|
|
|
|
+
|
|
|
- name: Print dependencies
|
|
- name: Print dependencies
|
|
|
run: |
|
|
run: |
|
|
|
echo -n "node " && node -v
|
|
echo -n "node " && node -v
|
|
|
echo -n "npm " && npm -v
|
|
echo -n "npm " && npm -v
|
|
|
yarn list --depth=0
|
|
yarn list --depth=0
|
|
|
|
|
|
|
|
|
|
+ - name: Slack Notification
|
|
|
|
|
+ uses: weseek/ghaction-slack-notification@master
|
|
|
|
|
+ if: failure()
|
|
|
|
|
+ with:
|
|
|
|
|
+ type: ${{ job.status }}
|
|
|
|
|
+ job_name: '*Node CI for growi - install-node14*'
|
|
|
|
|
+ channel: '#ci'
|
|
|
|
|
+ isCompactMode: true
|
|
|
|
|
+ url: ${{ secrets.SLACK_WEBHOOK_URL }}
|
|
|
|
|
+
|
|
|
|
|
+ lint:
|
|
|
|
|
+ needs: install-node14
|
|
|
|
|
+
|
|
|
|
|
+ runs-on: ubuntu-latest
|
|
|
|
|
+
|
|
|
|
|
+ steps:
|
|
|
|
|
+ - uses: actions/checkout@v2
|
|
|
|
|
+
|
|
|
|
|
+ - uses: actions/setup-node@v2
|
|
|
|
|
+ with:
|
|
|
|
|
+ node-version: 14.x
|
|
|
|
|
+ cache: 'yarn'
|
|
|
|
|
+ cache-dependency-path: '**/yarn.lock'
|
|
|
|
|
+
|
|
|
|
|
+ - name: Cache/Restore node_modules
|
|
|
|
|
+ id: cache-dependencies
|
|
|
|
|
+ uses: actions/cache@v2
|
|
|
|
|
+ with:
|
|
|
|
|
+ path: |
|
|
|
|
|
+ **/node_modules
|
|
|
|
|
+ key: ${{ runner.OS }}-node_modules-14.x-${{ hashFiles('**/yarn.lock') }}
|
|
|
|
|
+ restore-keys: |
|
|
|
|
|
+ ${{ runner.os }}-node_modules-14.x-
|
|
|
|
|
+
|
|
|
|
|
+ - name: lerna bootstrap
|
|
|
|
|
+ run: |
|
|
|
|
|
+ npx lerna bootstrap
|
|
|
|
|
+
|
|
|
- name: lerna run lint for plugins
|
|
- name: lerna run lint for plugins
|
|
|
run: |
|
|
run: |
|
|
|
yarn lerna run lint --scope @growi/plugin-*
|
|
yarn lerna run lint --scope @growi/plugin-*
|
|
@@ -47,18 +92,16 @@ jobs:
|
|
|
if: failure()
|
|
if: failure()
|
|
|
with:
|
|
with:
|
|
|
type: ${{ job.status }}
|
|
type: ${{ job.status }}
|
|
|
- job_name: '*Node CI for growi - lint (${{ matrix.node-version }})*'
|
|
|
|
|
|
|
+ job_name: '*Node CI for growi - lint (14.x)*'
|
|
|
channel: '#ci'
|
|
channel: '#ci'
|
|
|
isCompactMode: true
|
|
isCompactMode: true
|
|
|
url: ${{ secrets.SLACK_WEBHOOK_URL }}
|
|
url: ${{ secrets.SLACK_WEBHOOK_URL }}
|
|
|
|
|
|
|
|
|
|
|
|
|
test:
|
|
test:
|
|
|
- runs-on: ubuntu-latest
|
|
|
|
|
|
|
+ needs: install-node14
|
|
|
|
|
|
|
|
- strategy:
|
|
|
|
|
- matrix:
|
|
|
|
|
- node-version: [14.x]
|
|
|
|
|
|
|
+ runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
services:
|
|
services:
|
|
|
mongodb:
|
|
mongodb:
|
|
@@ -79,14 +122,19 @@ jobs:
|
|
|
cache: 'yarn'
|
|
cache: 'yarn'
|
|
|
cache-dependency-path: '**/yarn.lock'
|
|
cache-dependency-path: '**/yarn.lock'
|
|
|
|
|
|
|
|
|
|
+ - name: Cache/Restore node_modules
|
|
|
|
|
+ id: cache-dependencies
|
|
|
|
|
+ uses: actions/cache@v2
|
|
|
|
|
+ with:
|
|
|
|
|
+ path: |
|
|
|
|
|
+ **/node_modules
|
|
|
|
|
+ key: ${{ runner.OS }}-node_modules-14.x-${{ hashFiles('**/yarn.lock') }}
|
|
|
|
|
+ restore-keys: |
|
|
|
|
|
+ ${{ runner.os }}-node_modules-14.x-
|
|
|
|
|
+
|
|
|
- name: lerna bootstrap
|
|
- name: lerna bootstrap
|
|
|
run: |
|
|
run: |
|
|
|
npx lerna bootstrap
|
|
npx lerna bootstrap
|
|
|
- - name: Print dependencies
|
|
|
|
|
- run: |
|
|
|
|
|
- echo -n "node " && node -v
|
|
|
|
|
- echo -n "npm " && npm -v
|
|
|
|
|
- yarn list --depth=0
|
|
|
|
|
|
|
|
|
|
- name: yarn test
|
|
- name: yarn test
|
|
|
working-directory: ./packages/app
|
|
working-directory: ./packages/app
|
|
@@ -112,18 +160,16 @@ jobs:
|
|
|
if: failure()
|
|
if: failure()
|
|
|
with:
|
|
with:
|
|
|
type: ${{ job.status }}
|
|
type: ${{ job.status }}
|
|
|
- job_name: '*Node CI for growi - test (${{ matrix.node-version }})*'
|
|
|
|
|
|
|
+ job_name: '*Node CI for growi - test (14.x)*'
|
|
|
channel: '#ci'
|
|
channel: '#ci'
|
|
|
isCompactMode: true
|
|
isCompactMode: true
|
|
|
url: ${{ secrets.SLACK_WEBHOOK_URL }}
|
|
url: ${{ secrets.SLACK_WEBHOOK_URL }}
|
|
|
|
|
|
|
|
|
|
|
|
|
launch-dev:
|
|
launch-dev:
|
|
|
- runs-on: ubuntu-latest
|
|
|
|
|
|
|
+ needs: install-node14
|
|
|
|
|
|
|
|
- strategy:
|
|
|
|
|
- matrix:
|
|
|
|
|
- node-version: [14.x]
|
|
|
|
|
|
|
+ runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
services:
|
|
services:
|
|
|
mongodb:
|
|
mongodb:
|
|
@@ -140,14 +186,19 @@ jobs:
|
|
|
cache: 'yarn'
|
|
cache: 'yarn'
|
|
|
cache-dependency-path: '**/yarn.lock'
|
|
cache-dependency-path: '**/yarn.lock'
|
|
|
|
|
|
|
|
|
|
+ - name: Cache/Restore node_modules
|
|
|
|
|
+ id: cache-dependencies
|
|
|
|
|
+ uses: actions/cache@v2
|
|
|
|
|
+ with:
|
|
|
|
|
+ path: |
|
|
|
|
|
+ **/node_modules
|
|
|
|
|
+ key: ${{ runner.OS }}-node_modules-14.x-${{ hashFiles('**/yarn.lock') }}
|
|
|
|
|
+ restore-keys: |
|
|
|
|
|
+ ${{ runner.os }}-node_modules-14.x-
|
|
|
|
|
+
|
|
|
- name: lerna bootstrap
|
|
- name: lerna bootstrap
|
|
|
run: |
|
|
run: |
|
|
|
npx lerna bootstrap
|
|
npx lerna bootstrap
|
|
|
- - name: Print dependencies
|
|
|
|
|
- run: |
|
|
|
|
|
- echo -n "node " && node -v
|
|
|
|
|
- echo -n "npm " && npm -v
|
|
|
|
|
- yarn list --depth=0
|
|
|
|
|
|
|
|
|
|
- name: yarn dev:ci
|
|
- name: yarn dev:ci
|
|
|
working-directory: ./packages/app
|
|
working-directory: ./packages/app
|
|
@@ -162,28 +213,16 @@ jobs:
|
|
|
if: failure()
|
|
if: failure()
|
|
|
with:
|
|
with:
|
|
|
type: ${{ job.status }}
|
|
type: ${{ job.status }}
|
|
|
- job_name: '*Node CI for growi - build-dev (${{ matrix.node-version }})*'
|
|
|
|
|
|
|
+ job_name: '*Node CI for growi - launch-dev (14.x)*'
|
|
|
channel: '#ci'
|
|
channel: '#ci'
|
|
|
isCompactMode: true
|
|
isCompactMode: true
|
|
|
url: ${{ secrets.SLACK_WEBHOOK_URL }}
|
|
url: ${{ secrets.SLACK_WEBHOOK_URL }}
|
|
|
|
|
|
|
|
|
|
|
|
|
- launch-prod:
|
|
|
|
|
- runs-on: ubuntu-latest
|
|
|
|
|
-
|
|
|
|
|
- strategy:
|
|
|
|
|
- matrix:
|
|
|
|
|
- node-version: [12.x, 14.x]
|
|
|
|
|
|
|
+ build-prod:
|
|
|
|
|
+ needs: install-node14
|
|
|
|
|
|
|
|
- services:
|
|
|
|
|
- mongodb:
|
|
|
|
|
- image: mongo:4.4
|
|
|
|
|
- ports:
|
|
|
|
|
- - 27017/tcp
|
|
|
|
|
- mongodb36:
|
|
|
|
|
- image: mongo:3.6
|
|
|
|
|
- ports:
|
|
|
|
|
- - 27017/tcp
|
|
|
|
|
|
|
+ runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
steps:
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/checkout@v2
|
|
@@ -194,30 +233,89 @@ jobs:
|
|
|
cache: 'yarn'
|
|
cache: 'yarn'
|
|
|
cache-dependency-path: '**/yarn.lock'
|
|
cache-dependency-path: '**/yarn.lock'
|
|
|
|
|
|
|
|
|
|
+ - name: Cache/Restore node_modules
|
|
|
|
|
+ id: cache-dependencies
|
|
|
|
|
+ uses: actions/cache@v2
|
|
|
|
|
+ with:
|
|
|
|
|
+ path: |
|
|
|
|
|
+ **/node_modules
|
|
|
|
|
+ key: ${{ runner.OS }}-node_modules-14.x-${{ hashFiles('**/yarn.lock') }}
|
|
|
|
|
+ restore-keys: |
|
|
|
|
|
+ ${{ runner.os }}-node_modules-14.x-
|
|
|
|
|
+
|
|
|
- name: Remove unnecessary packages
|
|
- name: Remove unnecessary packages
|
|
|
run: |
|
|
run: |
|
|
|
rm -rf packages/slackbot-proxy
|
|
rm -rf packages/slackbot-proxy
|
|
|
- name: lerna bootstrap
|
|
- name: lerna bootstrap
|
|
|
run: |
|
|
run: |
|
|
|
npx lerna bootstrap
|
|
npx lerna bootstrap
|
|
|
- - name: Print dependencies
|
|
|
|
|
- run: |
|
|
|
|
|
- echo -n "node " && node -v
|
|
|
|
|
- echo -n "npm " && npm -v
|
|
|
|
|
- yarn list --depth=0
|
|
|
|
|
- name: Build
|
|
- name: Build
|
|
|
run: |
|
|
run: |
|
|
|
yarn lerna run build
|
|
yarn lerna run build
|
|
|
env:
|
|
env:
|
|
|
- ANALYZE_BUNDLE_SIZE: ${{ matrix.node-version == '14.x' }}
|
|
|
|
|
|
|
+ ANALYZE_BUNDLE_SIZE: 1
|
|
|
- name: lerna bootstrap --production
|
|
- name: lerna bootstrap --production
|
|
|
run: |
|
|
run: |
|
|
|
npx lerna bootstrap -- --production
|
|
npx lerna bootstrap -- --production
|
|
|
- - name: Print dependencies
|
|
|
|
|
|
|
+
|
|
|
|
|
+ - name: Upload built artifact
|
|
|
|
|
+ uses: actions/upload-artifact@v2
|
|
|
|
|
+ with:
|
|
|
|
|
+ name: Built Files
|
|
|
|
|
+ path: packages/**/dist
|
|
|
|
|
+
|
|
|
|
|
+ - name: Upload report as artifact
|
|
|
|
|
+ uses: actions/upload-artifact@v2
|
|
|
|
|
+ with:
|
|
|
|
|
+ name: Bundle Analyzing Report
|
|
|
|
|
+ path: packages/app/report/bundle-analyzer.html
|
|
|
|
|
+
|
|
|
|
|
+ - name: Slack Notification
|
|
|
|
|
+ uses: weseek/ghaction-slack-notification@master
|
|
|
|
|
+ if: failure()
|
|
|
|
|
+ with:
|
|
|
|
|
+ type: ${{ job.status }}
|
|
|
|
|
+ job_name: '*Node CI for growi - build-prod (14.x)*'
|
|
|
|
|
+ channel: '#ci'
|
|
|
|
|
+ isCompactMode: true
|
|
|
|
|
+ url: ${{ secrets.SLACK_WEBHOOK_URL }}
|
|
|
|
|
+
|
|
|
|
|
+ launch-prod:
|
|
|
|
|
+ needs: build-prod
|
|
|
|
|
+
|
|
|
|
|
+ runs-on: ubuntu-latest
|
|
|
|
|
+
|
|
|
|
|
+ steps:
|
|
|
|
|
+ - uses: actions/checkout@v2
|
|
|
|
|
+
|
|
|
|
|
+ - uses: actions/setup-node@v2
|
|
|
|
|
+ with:
|
|
|
|
|
+ node-version: ${{ matrix.node-version }}
|
|
|
|
|
+ cache: 'yarn'
|
|
|
|
|
+ cache-dependency-path: '**/yarn.lock'
|
|
|
|
|
+
|
|
|
|
|
+ - name: Cache/Restore node_modules
|
|
|
|
|
+ id: cache-dependencies
|
|
|
|
|
+ uses: actions/cache@v2
|
|
|
|
|
+ with:
|
|
|
|
|
+ path: |
|
|
|
|
|
+ **/node_modules
|
|
|
|
|
+ key: ${{ runner.OS }}-node_modules-14.x-${{ hashFiles('**/yarn.lock') }}
|
|
|
|
|
+ restore-keys: |
|
|
|
|
|
+ ${{ runner.os }}-node_modules-14.x-
|
|
|
|
|
+
|
|
|
|
|
+ - name: Remove unnecessary packages
|
|
|
run: |
|
|
run: |
|
|
|
- echo -n "node " && node -v
|
|
|
|
|
- echo -n "npm " && npm -v
|
|
|
|
|
- yarn list --production --depth=0
|
|
|
|
|
|
|
+ rm -rf packages/slackbot-proxy
|
|
|
|
|
+ - name: lerna bootstrap --production
|
|
|
|
|
+ run: |
|
|
|
|
|
+ npx lerna bootstrap -- --production
|
|
|
|
|
+
|
|
|
|
|
+ - name: Download built artifact
|
|
|
|
|
+ uses: actions/download-artifact@v2
|
|
|
|
|
+ with:
|
|
|
|
|
+ name: Built Files
|
|
|
|
|
+
|
|
|
- name: Get DB name
|
|
- name: Get DB name
|
|
|
id: getdbname
|
|
id: getdbname
|
|
|
run: |
|
|
run: |
|
|
@@ -237,12 +335,6 @@ jobs:
|
|
|
env:
|
|
env:
|
|
|
MONGO_URI: mongodb://localhost:${{ job.services.mongodb36.ports['27017'] }}/growi-${{ steps.getdbname.outputs.suffix }}
|
|
MONGO_URI: mongodb://localhost:${{ job.services.mongodb36.ports['27017'] }}/growi-${{ steps.getdbname.outputs.suffix }}
|
|
|
|
|
|
|
|
- - name: Upload report as artifact
|
|
|
|
|
- uses: actions/upload-artifact@v2
|
|
|
|
|
- with:
|
|
|
|
|
- name: Bundle Analyzing Report
|
|
|
|
|
- path: packages/app/report/bundle-analyzer.html
|
|
|
|
|
-
|
|
|
|
|
- name: Slack Notification
|
|
- name: Slack Notification
|
|
|
uses: weseek/ghaction-slack-notification@master
|
|
uses: weseek/ghaction-slack-notification@master
|
|
|
if: failure()
|
|
if: failure()
|