| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- name: Reusable build app workflow for production
- on:
- workflow_call:
- inputs:
- node-version:
- required: true
- type: string
- checkout-ref:
- type: string
- default: ${{ github.head_ref }}
- skip-reg-suit:
- type: boolean
- cypress-report-artifact-name:
- required: true
- type: string
- secrets:
- REG_NOTIFY_GITHUB_PLUGIN_CLIENTID:
- required: true
- AWS_ACCESS_KEY_ID:
- required: true
- AWS_SECRET_ACCESS_KEY:
- required: true
- SLACK_WEBHOOK_URL:
- required: true
- outputs:
- EXPECTED_IMAGES_EXIST:
- value: ${{ jobs.run-reg-suit.outputs.EXPECTED_IMAGES_EXIST }}
- jobs:
- run-reg-suit:
- # use secrets for "VRT" environment
- # https://github.com/weseek/growi/settings/environments/376165508/edit
- environment: VRT
- if: ${{ !inputs.skip-reg-suit }}
- env:
- REG_NOTIFY_GITHUB_PLUGIN_CLIENTID: ${{ secrets.REG_NOTIFY_GITHUB_PLUGIN_CLIENTID }}
- AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
- AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
- runs-on: ubuntu-latest
- outputs:
- EXPECTED_IMAGES_EXIST: ${{ steps.check-expected-images.outputs.EXPECTED_IMAGES_EXIST }}
- steps:
- - uses: actions/checkout@v3
- with:
- ref: ${{ inputs.checkout-ref }}
- fetch-depth: 0
- - uses: actions/setup-node@v3
- with:
- node-version: ${{ inputs.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('packages/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: lerna bootstrap
- run: |
- npx lerna bootstrap -- --frozen-lockfile
- - name: Download screenshots taken by cypress
- uses: actions/download-artifact@v3
- with:
- name: ${{ inputs.cypress-report-artifact-name }}
- path: packages/app/test/cypress
- - name: Run reg-suit
- working-directory: ./packages/app
- run: |
- yarn reg:run
- - name: Slack Notification
- uses: weseek/ghaction-slack-notification@master
- if: failure()
- with:
- type: ${{ job.status }}
- job_name: '*Node CI for growi - run-reg-suit (${{ inputs.node-version }})*'
- channel: '#ci'
- isCompactMode: true
- url: ${{ secrets.SLACK_WEBHOOK_URL }}
|