From bf9347f68542ee3cb0f497dbefad0fd291cfd3d5 Mon Sep 17 00:00:00 2001
From: Divlo
Date: Wed, 23 Feb 2022 19:46:44 +0100
Subject: [PATCH] ci: multiple workflows instead of one
---
.github/workflows/Divlo.yml | 188 ----------------------------------
.github/workflows/analyze.yml | 27 +++++
.github/workflows/build.yml | 25 +++++
.github/workflows/lint.yml | 50 +++++++++
.github/workflows/release.yml | 44 ++++++++
.github/workflows/test.yml | 70 +++++++++++++
.releaserc.json | 1 +
README.md | 1 -
8 files changed, 217 insertions(+), 189 deletions(-)
delete mode 100644 .github/workflows/Divlo.yml
create mode 100644 .github/workflows/analyze.yml
create mode 100644 .github/workflows/build.yml
create mode 100644 .github/workflows/lint.yml
create mode 100644 .github/workflows/release.yml
create mode 100644 .github/workflows/test.yml
diff --git a/.github/workflows/Divlo.yml b/.github/workflows/Divlo.yml
deleted file mode 100644
index 1ee8732..0000000
--- a/.github/workflows/Divlo.yml
+++ /dev/null
@@ -1,188 +0,0 @@
-name: 'Divlo'
-
-on:
- push:
- branches: [master, develop]
- pull_request:
- branches: [master, develop]
-
-jobs:
- analyze:
- runs-on: 'ubuntu-latest'
-
- strategy:
- fail-fast: false
- matrix:
- language: ['javascript']
-
- steps:
- - uses: 'actions/checkout@v2.4.0'
-
- - name: 'Initialize CodeQL'
- uses: 'github/codeql-action/init@v1'
- with:
- languages: ${{ matrix.language }}
-
- - name: 'Perform CodeQL Analysis'
- uses: 'github/codeql-action/analyze@v1'
-
- build:
- runs-on: 'ubuntu-latest'
- steps:
- - uses: 'actions/checkout@v2.4.0'
-
- - name: 'Use Node.js'
- uses: 'actions/setup-node@v2.5.1'
- with:
- node-version: '16.x'
- cache: 'npm'
-
- - name: 'Install'
- run: 'npm install'
-
- - name: 'Build'
- run: 'npm run build'
-
- lint:
- runs-on: 'ubuntu-latest'
- steps:
- - uses: 'actions/checkout@v2.4.0'
-
- - name: 'Use Node.js'
- uses: 'actions/setup-node@v2.5.1'
- with:
- node-version: '16.x'
- cache: 'npm'
-
- - name: 'Install'
- run: 'npm install'
-
- - name: 'lint:commit'
- run: 'npm run lint:commit -- --to "${{ github.sha }}"'
-
- - name: 'lint:editorconfig'
- run: 'npm run lint:editorconfig'
-
- - name: 'lint:markdown'
- run: 'npm run lint:markdown'
-
- - name: 'lint:typescript'
- run: 'npm run lint:typescript'
-
- - name: 'lint:prettier'
- run: 'npm run lint:prettier'
-
- - name: 'resume:validate'
- run: 'npm run resume:validate'
-
- - name: 'lint:dotenv'
- uses: 'dotenv-linter/action-dotenv-linter@v2'
- with:
- github_token: ${{ secrets.github_token }}
-
- - name: 'lint:docker'
- uses: 'hadolint/hadolint-action@v1.6.0'
- with:
- dockerfile: './Dockerfile'
-
- test-unit:
- runs-on: 'ubuntu-latest'
- steps:
- - uses: 'actions/checkout@v2.4.0'
-
- - name: 'Use Node.js'
- uses: 'actions/setup-node@v2.5.1'
- with:
- node-version: '16.x'
- cache: 'npm'
-
- - name: 'Install'
- run: 'npm install'
-
- - name: 'Unit Test'
- run: 'npm run test:unit'
-
- test-lighthouse:
- runs-on: 'ubuntu-latest'
- steps:
- - uses: 'actions/checkout@v2.4.0'
-
- - name: 'Use Node.js'
- uses: 'actions/setup-node@v2.5.1'
- with:
- node-version: '16.x'
- cache: 'npm'
-
- - name: 'Install'
- run: 'npm install'
-
- - name: 'Build'
- run: 'npm run build'
-
- - name: 'html-w3c-validator'
- run: 'npm run test:html-w3c-validator'
-
- - name: 'Lighthouse'
- run: 'npm run test:lighthouse'
- env:
- LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }}
-
- test-e2e:
- runs-on: 'ubuntu-latest'
- steps:
- - uses: 'actions/checkout@v2.4.0'
-
- - name: 'Use Node.js'
- uses: 'actions/setup-node@v2.5.1'
- with:
- node-version: '16.x'
- cache: 'npm'
-
- - name: 'Install'
- run: 'npm install'
-
- - name: 'Build'
- run: 'npm run build'
-
- - name: 'End To End (e2e) Test'
- run: 'npm run test:e2e'
-
- release:
- if: github.ref == 'refs/heads/master' && github.event_name == 'push'
- needs: [analyze, build, lint, test-unit, test-lighthouse, test-e2e]
- runs-on: 'ubuntu-latest'
- steps:
- - uses: 'actions/checkout@v2.4.0'
- with:
- fetch-depth: 0
- persist-credentials: false
-
- - name: 'Import GPG key'
- uses: 'crazy-max/ghaction-import-gpg@v4'
- with:
- gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
- git_user_signingkey: true
- git_commit_gpgsign: true
-
- - name: 'Use Node.js'
- uses: 'actions/setup-node@v2.5.1'
- with:
- node-version: '16.x'
- cache: 'npm'
-
- - name: 'Install'
- run: 'npm install'
-
- - name: 'Release'
- run: 'npm run release'
- env:
- GH_TOKEN: ${{ secrets.GH_TOKEN }}
- GIT_COMMITTER_NAME: ${{ secrets.GIT_NAME }}
- GIT_COMMITTER_EMAIL: ${{ secrets.GIT_EMAIL }}
-
- - 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 }}
diff --git a/.github/workflows/analyze.yml b/.github/workflows/analyze.yml
new file mode 100644
index 0000000..7e6e1ea
--- /dev/null
+++ b/.github/workflows/analyze.yml
@@ -0,0 +1,27 @@
+name: 'Analyze'
+
+on:
+ push:
+ branches: [develop]
+ pull_request:
+ branches: [master, develop]
+
+jobs:
+ analyze:
+ runs-on: 'ubuntu-latest'
+
+ strategy:
+ fail-fast: false
+ matrix:
+ language: ['javascript']
+
+ steps:
+ - uses: 'actions/checkout@v2.4.0'
+
+ - name: 'Initialize CodeQL'
+ uses: 'github/codeql-action/init@v1'
+ with:
+ languages: ${{ matrix.language }}
+
+ - name: 'Perform CodeQL Analysis'
+ uses: 'github/codeql-action/analyze@v1'
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..c1bca42
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,25 @@
+name: 'Build'
+
+on:
+ push:
+ branches: [develop]
+ pull_request:
+ branches: [master, develop]
+
+jobs:
+ build:
+ runs-on: 'ubuntu-latest'
+ steps:
+ - uses: 'actions/checkout@v2'
+
+ - name: 'Use Node.js'
+ uses: 'actions/setup-node@v2.5.1'
+ with:
+ node-version: '16.x'
+ cache: 'npm'
+
+ - name: 'Install'
+ run: 'npm install'
+
+ - name: 'Build'
+ run: 'npm run build'
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
new file mode 100644
index 0000000..efe67bd
--- /dev/null
+++ b/.github/workflows/lint.yml
@@ -0,0 +1,50 @@
+name: 'Lint'
+
+on:
+ push:
+ branches: [develop]
+ pull_request:
+ branches: [master, develop]
+
+jobs:
+ lint:
+ runs-on: 'ubuntu-latest'
+ steps:
+ - uses: 'actions/checkout@v2'
+
+ - name: 'Use Node.js'
+ uses: 'actions/setup-node@v2.5.1'
+ with:
+ node-version: '16.x'
+ cache: 'npm'
+
+ - name: 'Install'
+ run: 'npm install'
+
+ - name: 'lint:commit'
+ run: 'npm run lint:commit -- --to "${{ github.sha }}"'
+
+ - name: 'lint:editorconfig'
+ run: 'npm run lint:editorconfig'
+
+ - name: 'lint:markdown'
+ run: 'npm run lint:markdown'
+
+ - name: 'lint:typescript'
+ run: 'npm run lint:typescript'
+
+ - name: 'lint:prettier'
+ run: 'npm run lint:prettier'
+
+ - name: 'resume:validate'
+ run: 'npm run resume:validate'
+
+ - name: 'lint:dotenv'
+ uses: 'dotenv-linter/action-dotenv-linter@v2'
+ with:
+ github_token: ${{ secrets.github_token }}
+
+ - name: 'lint:docker'
+ uses: 'hadolint/hadolint-action@v1.6.0'
+ with:
+ dockerfile: './Dockerfile'
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..2e2f0a9
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,44 @@
+name: 'Release'
+
+on:
+ push:
+ branches: [master]
+
+jobs:
+ release:
+ runs-on: 'ubuntu-latest'
+ steps:
+ - uses: 'actions/checkout@v2.4.0'
+ with:
+ fetch-depth: 0
+ persist-credentials: false
+
+ - name: 'Import GPG key'
+ uses: 'crazy-max/ghaction-import-gpg@v4'
+ with:
+ gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
+ git_user_signingkey: true
+ git_commit_gpgsign: true
+
+ - name: 'Use Node.js'
+ uses: 'actions/setup-node@v2.4.0'
+ with:
+ node-version: '16.x'
+ cache: 'npm'
+
+ - name: 'Install'
+ run: 'npm install'
+
+ - name: 'Release'
+ run: 'npm run release'
+ env:
+ GH_TOKEN: ${{ secrets.GH_TOKEN }}
+ GIT_COMMITTER_NAME: ${{ secrets.GIT_NAME }}
+ GIT_COMMITTER_EMAIL: ${{ secrets.GIT_EMAIL }}
+
+ - 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 }}
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000..b303e36
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,70 @@
+name: 'Test'
+
+on:
+ push:
+ branches: [develop]
+ pull_request:
+ branches: [master, develop]
+
+jobs:
+ test-unit:
+ runs-on: 'ubuntu-latest'
+ steps:
+ - uses: 'actions/checkout@v2.4.0'
+
+ - name: 'Use Node.js'
+ uses: 'actions/setup-node@v2.5.1'
+ with:
+ node-version: '16.x'
+ cache: 'npm'
+
+ - name: 'Install'
+ run: 'npm install'
+
+ - name: 'Unit Test'
+ run: 'npm run test:unit'
+
+ test-lighthouse:
+ runs-on: 'ubuntu-latest'
+ steps:
+ - uses: 'actions/checkout@v2.4.0'
+
+ - name: 'Use Node.js'
+ uses: 'actions/setup-node@v2.5.1'
+ with:
+ node-version: '16.x'
+ cache: 'npm'
+
+ - name: 'Install'
+ run: 'npm install'
+
+ - name: 'Build'
+ run: 'npm run build'
+
+ - name: 'html-w3c-validator'
+ run: 'npm run test:html-w3c-validator'
+
+ - name: 'Lighthouse'
+ run: 'npm run test:lighthouse'
+ env:
+ LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }}
+
+ test-e2e:
+ runs-on: 'ubuntu-latest'
+ steps:
+ - uses: 'actions/checkout@v2.4.0'
+
+ - name: 'Use Node.js'
+ uses: 'actions/setup-node@v2.5.1'
+ with:
+ node-version: '16.x'
+ cache: 'npm'
+
+ - name: 'Install'
+ run: 'npm install'
+
+ - name: 'Build'
+ run: 'npm run build'
+
+ - name: 'End To End (e2e) Test'
+ run: 'npm run test:e2e'
diff --git a/.releaserc.json b/.releaserc.json
index 41ee84f..8248ab9 100644
--- a/.releaserc.json
+++ b/.releaserc.json
@@ -30,6 +30,7 @@
[
"@saithodev/semantic-release-backmerge",
{
+ "branches": [{ "from": "master", "to": "develop" }],
"backmergeStrategy": "merge"
}
]
diff --git a/README.md b/README.md
index c197aba..1630a44 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,6 @@
-