2021-04-18 22:30:27 +02:00
|
|
|
name: 'Divlo'
|
2021-04-18 01:56:23 +02:00
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
2021-06-13 01:53:13 +02:00
|
|
|
branches: [master, develop]
|
2021-04-18 01:56:23 +02:00
|
|
|
pull_request:
|
2021-06-13 01:53:13 +02:00
|
|
|
branches: [master, develop]
|
2021-04-18 01:56:23 +02:00
|
|
|
|
|
|
|
jobs:
|
2021-05-31 15:04:17 +02:00
|
|
|
analyze:
|
2021-04-18 01:56:23 +02:00
|
|
|
runs-on: 'ubuntu-latest'
|
2021-05-31 15:04:17 +02:00
|
|
|
|
2021-04-18 01:56:23 +02:00
|
|
|
strategy:
|
2021-05-31 15:04:17 +02:00
|
|
|
fail-fast: false
|
2021-04-18 01:56:23 +02:00
|
|
|
matrix:
|
2021-05-31 15:04:17 +02:00
|
|
|
language: ['javascript']
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- uses: 'actions/checkout@v2.3.4'
|
|
|
|
|
|
|
|
- name: 'Initialize CodeQL'
|
|
|
|
uses: 'github/codeql-action/init@v1'
|
|
|
|
with:
|
|
|
|
languages: ${{ matrix.language }}
|
|
|
|
|
|
|
|
- name: 'Perform CodeQL Analysis'
|
|
|
|
uses: 'github/codeql-action/analyze@v1'
|
|
|
|
|
|
|
|
lint:
|
|
|
|
runs-on: 'ubuntu-latest'
|
2021-04-18 01:56:23 +02:00
|
|
|
steps:
|
2021-05-13 13:35:37 +02:00
|
|
|
- uses: 'actions/checkout@v2.3.4'
|
2021-04-18 01:56:23 +02:00
|
|
|
|
2021-05-31 15:04:17 +02:00
|
|
|
- name: 'Use Node.js'
|
2021-08-12 01:21:40 +02:00
|
|
|
uses: 'actions/setup-node@v2.4.0'
|
2021-04-18 01:56:23 +02:00
|
|
|
with:
|
2021-06-13 01:53:13 +02:00
|
|
|
node-version: '16.x'
|
2021-07-01 09:14:38 +02:00
|
|
|
cache: 'npm'
|
2021-04-18 01:56:23 +02:00
|
|
|
|
2021-05-31 15:04:17 +02:00
|
|
|
- name: 'Install'
|
2021-07-01 09:14:38 +02:00
|
|
|
run: 'npm install'
|
2021-05-31 15:04:17 +02:00
|
|
|
|
2021-04-18 01:56:23 +02:00
|
|
|
- run: 'npm run lint:commit -- --to "${{ github.sha }}"'
|
|
|
|
- run: 'npm run lint:docker'
|
|
|
|
- run: 'npm run lint:editorconfig'
|
|
|
|
- run: 'npm run lint:markdown'
|
|
|
|
- run: 'npm run lint:typescript'
|
2021-05-31 15:04:17 +02:00
|
|
|
|
2021-08-13 15:48:29 +02:00
|
|
|
test-unit:
|
|
|
|
runs-on: 'ubuntu-latest'
|
|
|
|
steps:
|
|
|
|
- uses: 'actions/checkout@v2.3.4'
|
|
|
|
|
|
|
|
- name: 'Use Node.js'
|
|
|
|
uses: 'actions/setup-node@v2.4.0'
|
|
|
|
with:
|
|
|
|
node-version: '16.x'
|
|
|
|
cache: 'npm'
|
|
|
|
|
|
|
|
- name: 'Install'
|
|
|
|
run: 'npm install'
|
|
|
|
|
|
|
|
- name: 'Unit Test'
|
|
|
|
run: 'npm run test:unit'
|
|
|
|
|
|
|
|
test-lighthouse:
|
2021-05-31 15:04:17 +02:00
|
|
|
runs-on: 'ubuntu-latest'
|
|
|
|
steps:
|
|
|
|
- uses: 'actions/checkout@v2.3.4'
|
|
|
|
|
|
|
|
- name: 'Use Node.js'
|
2021-08-12 01:21:40 +02:00
|
|
|
uses: 'actions/setup-node@v2.4.0'
|
2021-05-31 15:04:17 +02:00
|
|
|
with:
|
2021-06-13 01:53:13 +02:00
|
|
|
node-version: '16.x'
|
2021-07-01 09:14:38 +02:00
|
|
|
cache: 'npm'
|
2021-05-31 15:04:17 +02:00
|
|
|
|
|
|
|
- name: 'Install'
|
2021-07-01 09:14:38 +02:00
|
|
|
run: 'npm install'
|
2021-05-31 15:04:17 +02:00
|
|
|
|
|
|
|
- name: 'Build'
|
|
|
|
run: 'npm run build'
|
|
|
|
|
|
|
|
- name: 'Lighthouse'
|
2021-08-13 15:48:29 +02:00
|
|
|
run: 'npm run test:lighthouse'
|
2021-06-15 20:35:52 +02:00
|
|
|
env:
|
|
|
|
LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }}
|
2021-05-31 15:04:17 +02:00
|
|
|
|
2021-08-13 15:48:29 +02:00
|
|
|
test-e2e:
|
2021-05-31 15:04:17 +02:00
|
|
|
runs-on: 'ubuntu-latest'
|
|
|
|
steps:
|
|
|
|
- uses: 'actions/checkout@v2.3.4'
|
|
|
|
|
|
|
|
- name: 'Use Node.js'
|
2021-08-12 01:21:40 +02:00
|
|
|
uses: 'actions/setup-node@v2.4.0'
|
2021-05-31 15:04:17 +02:00
|
|
|
with:
|
2021-06-13 01:53:13 +02:00
|
|
|
node-version: '16.x'
|
2021-07-01 09:14:38 +02:00
|
|
|
cache: 'npm'
|
2021-05-31 15:04:17 +02:00
|
|
|
|
|
|
|
- name: 'Install'
|
2021-07-01 09:14:38 +02:00
|
|
|
run: 'npm install'
|
2021-05-31 15:04:17 +02:00
|
|
|
|
2021-08-13 15:48:29 +02:00
|
|
|
- name: 'Build'
|
|
|
|
run: 'npm run build'
|
|
|
|
|
|
|
|
- name: 'End To End (e2e) Test'
|
|
|
|
run: 'npm run test:e2e'
|
2021-05-31 15:04:17 +02:00
|
|
|
|
|
|
|
release:
|
|
|
|
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
|
2021-08-13 15:48:29 +02:00
|
|
|
needs: [analyze, lint, test-unit, test-e2e, test-lighthouse]
|
2021-05-31 15:04:17 +02:00
|
|
|
runs-on: 'ubuntu-latest'
|
|
|
|
steps:
|
|
|
|
- uses: 'actions/checkout@v2.3.4'
|
2021-07-27 19:52:24 +02:00
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
|
|
|
persist-credentials: false
|
2021-05-31 15:04:17 +02:00
|
|
|
|
2021-07-27 21:01:33 +02:00
|
|
|
- name: 'Import GPG key'
|
2021-09-06 16:37:10 +02:00
|
|
|
uses: 'crazy-max/ghaction-import-gpg@v4'
|
2021-07-27 21:01:33 +02:00
|
|
|
with:
|
2021-09-06 16:37:10 +02:00
|
|
|
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
|
|
|
git_user_signingkey: true
|
|
|
|
git_commit_gpgsign: true
|
2021-07-27 21:01:33 +02:00
|
|
|
|
2021-05-31 15:04:17 +02:00
|
|
|
- name: 'Use Node.js'
|
2021-08-12 01:21:40 +02:00
|
|
|
uses: 'actions/setup-node@v2.4.0'
|
2021-05-31 15:04:17 +02:00
|
|
|
with:
|
2021-06-13 01:53:13 +02:00
|
|
|
node-version: '16.x'
|
2021-07-01 09:14:38 +02:00
|
|
|
cache: 'npm'
|
2021-05-31 15:04:17 +02:00
|
|
|
|
|
|
|
- name: 'Install'
|
2021-07-01 09:14:38 +02:00
|
|
|
run: 'npm install'
|
2021-05-31 15:04:17 +02:00
|
|
|
|
|
|
|
- name: 'Release'
|
|
|
|
run: 'npm run release'
|
|
|
|
env:
|
2021-07-27 20:01:21 +02:00
|
|
|
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
|
|
|
GIT_COMMITTER_NAME: ${{ secrets.GIT_NAME }}
|
|
|
|
GIT_COMMITTER_EMAIL: ${{ secrets.GIT_EMAIL }}
|
2021-07-27 19:00:21 +02:00
|
|
|
|
|
|
|
- name: 'Deploy to Vercel'
|
|
|
|
run: 'npm run deploy -- --token="${VERCEL_TOKEN}" --prod'
|
|
|
|
env:
|
|
|
|
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
|
|
|
|
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
|
|
|
|
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
|