2023-07-30 01:57:45 +03:00
|
|
|
name: Javascript Formatting
|
2021-02-06 00:07:05 +03:00
|
|
|
|
|
|
|
# This action works with pull requests and pushes
|
|
|
|
on:
|
|
|
|
push:
|
2022-06-30 00:18:42 +03:00
|
|
|
paths:
|
|
|
|
- web/**
|
2023-05-03 19:14:54 +03:00
|
|
|
pull_request_target:
|
2022-09-03 21:35:46 +03:00
|
|
|
paths:
|
|
|
|
- web/**
|
2022-06-30 00:34:37 +03:00
|
|
|
|
2021-02-06 00:07:05 +03:00
|
|
|
jobs:
|
2023-07-30 01:57:45 +03:00
|
|
|
formatting:
|
|
|
|
name: Javascript code formatting
|
2021-02-06 00:07:05 +03:00
|
|
|
runs-on: ubuntu-latest
|
2022-07-11 03:07:59 +03:00
|
|
|
defaults:
|
|
|
|
run:
|
|
|
|
working-directory: ./web
|
|
|
|
|
2021-02-06 00:07:05 +03:00
|
|
|
steps:
|
2022-11-24 02:04:20 +03:00
|
|
|
- id: skip_check
|
|
|
|
uses: fkirc/skip-duplicate-actions@v5
|
|
|
|
with:
|
|
|
|
concurrent_skipping: 'same_content_newer'
|
|
|
|
|
2022-06-30 00:18:42 +03:00
|
|
|
- name: Checkout
|
|
|
|
uses: actions/checkout@v3
|
|
|
|
with:
|
|
|
|
# Make sure the actual branch is checked out when running on pull requests
|
2022-09-05 22:33:01 +03:00
|
|
|
ref: ${{ github.event.pull_request.head.ref }}
|
|
|
|
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
2022-06-30 00:18:42 +03:00
|
|
|
fetch-depth: 0
|
|
|
|
|
2023-07-30 01:57:45 +03:00
|
|
|
- name: Get changed files
|
|
|
|
id: changed-files
|
|
|
|
uses: tj-actions/changed-files@v37
|
2022-06-30 00:18:42 +03:00
|
|
|
with:
|
2023-07-30 01:57:45 +03:00
|
|
|
files_yaml: |
|
|
|
|
src:
|
|
|
|
- '**.js'
|
|
|
|
- '**.ts'
|
|
|
|
- '**.tsx'
|
|
|
|
- '**.jsx'
|
|
|
|
- '**.css'
|
|
|
|
- '**.md'
|
2022-06-30 00:18:42 +03:00
|
|
|
|
|
|
|
- name: Install Dependencies
|
2022-09-05 22:33:01 +03:00
|
|
|
run: npm install
|
2021-02-06 00:07:05 +03:00
|
|
|
|
2022-06-30 00:18:42 +03:00
|
|
|
- name: Lint
|
2023-07-30 01:57:45 +03:00
|
|
|
if: steps.changed-files.outputs.any_changed == 'true'
|
|
|
|
run: npx eslint --fix ${{ steps.changed-files.outputs.all_changed_files }}
|
|
|
|
|
|
|
|
- name: Prettier
|
|
|
|
if: steps.changed-files.outputs.any_changed == 'true'
|
|
|
|
run: npx prettier --write ${{ steps.changed-files.outputs.all_changed_files }}
|
|
|
|
|
|
|
|
- name: Commit changes
|
|
|
|
if: steps.changed-files.outputs.any_changed == 'true'
|
|
|
|
uses: EndBug/add-and-commit@v9
|
|
|
|
with:
|
|
|
|
author_name: Owncast
|
|
|
|
author_email: owncast@owncast.online
|
|
|
|
message: 'Javascript formatting autofixes'
|
|
|
|
pull: '--rebase --autostash'
|
2023-05-21 07:15:25 +03:00
|
|
|
|
|
|
|
unused-code:
|
|
|
|
name: Test for unused code
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
defaults:
|
|
|
|
run:
|
|
|
|
working-directory: ./web
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- id: skip_check
|
|
|
|
uses: fkirc/skip-duplicate-actions@v5
|
|
|
|
with:
|
|
|
|
concurrent_skipping: 'same_content_newer'
|
|
|
|
|
|
|
|
- name: Checkout
|
|
|
|
uses: actions/checkout@v3
|
|
|
|
with:
|
|
|
|
# Make sure the actual branch is checked out when running on pull requests
|
|
|
|
ref: ${{ github.event.pull_request.head.ref }}
|
|
|
|
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
|
|
|
fetch-depth: 0
|
|
|
|
|
|
|
|
- name: Install Dependencies
|
|
|
|
run: npm install
|
|
|
|
|
|
|
|
- name: Check for unused JS code and dependencies
|
|
|
|
run: npx knip --include dependencies,files,exports
|