Merge pull request #2168 from City-of-Helsinki/develop #2462
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: (KS Youth) Frontend Lint, Unit and Component tests | |
on: | |
push: | |
branches: [ develop, main ] | |
pull_request: | |
paths: | |
- 'frontend/shared/**' | |
- 'frontend/kesaseteli/shared/**' | |
- 'frontend/kesaseteli/youth/**' | |
- 'frontend/*' | |
- '.github/workflows/ks-youth-frontend-tests.yml' | |
- "!**/browser-tests/**" | |
- "!**/README.md" | |
workflow_dispatch: | |
defaults: | |
run: | |
working-directory: ./frontend/kesaseteli/youth | |
jobs: | |
test: | |
name: Test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup Node.js environment | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '16' | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "::set-output name=dir::$(yarn config get cacheFolder)" | |
- uses: actions/cache@v3 | |
id: yarn-cache | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Install dependencies | |
run: yarn --prefer-offline --frozen-lockfile --check-files | |
- name: Run linter | |
run: yarn lint | |
- name: Run tests | |
run: yarn test:coverage | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
- name: Frontend test failure slack notification | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} | |
SLACK_COLOR: ${{ job.status }} | |
SLACK_USERNAME: GitHub-Alerts | |
SLACK_TITLE: ${{ github.workflow }} has *FAILED*! | |
SLACK_MESSAGE: "*Frontend tests have failed on ${{ github.ref }}!*" | |
SLACK_CHANNEL: yjdh-alerts | |
if: failure() && (contains(github.ref, 'develop') || contains(github.ref, 'main')) | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup Node.js environment | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '16' | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "::set-output name=dir::$(yarn config get cacheFolder)" | |
- uses: actions/cache@v3 | |
id: yarn-cache | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Install dependencies | |
run: yarn --prefer-offline --frozen-lockfile --check-files | |
- name: Check that building dev application works | |
env: | |
NEXTJS_DISABLE_SENTRY: true | |
run: yarn build | |
- name: Frontend build failure slack notification | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} | |
SLACK_COLOR: ${{ job.status }} | |
SLACK_USERNAME: GitHub-Alerts | |
SLACK_TITLE: ${{ github.workflow }} has *FAILED*! | |
SLACK_MESSAGE: "*Frontend build has failed on ${{ github.ref }}!*" | |
SLACK_CHANNEL: yjdh-alerts | |
if: failure() && (contains(github.ref, 'develop') || contains(github.ref, 'main')) |