Skip to content

Commit 06883aa

Browse files
chore(ci): add Prettier to CI workflow (#111)
1 parent 567903e commit 06883aa

4 files changed

Lines changed: 40 additions & 17 deletions

File tree

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
name: Run ESLint
2+
name: Run ESLint and Prettier
33

44
on:
55
pull_request:
@@ -12,17 +12,28 @@ on:
1212
- v*.*
1313

1414
jobs:
15-
build:
15+
run-eslint:
1616
runs-on: ubuntu-latest
1717
name: Run ESLint
1818
steps:
1919
- name: Checkout
2020
uses: actions/checkout@v4
21-
2221
- name: Build Docker images
2322
run: |
2423
docker compose build
25-
2624
- name: Run ESLint
2725
run: |
2826
./bin/run_eslint.sh src/
27+
28+
run-prettier:
29+
runs-on: ubuntu-latest
30+
name: Run Prettier
31+
steps:
32+
- name: Checkout
33+
uses: actions/checkout@v4
34+
- name: Build Docker images
35+
run: |
36+
docker compose build
37+
- name: Run Prettier
38+
run: |
39+
MODE="check" ./bin/run_formatter.sh

README.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
<img alt="GitHub Actions Workflow Status"
1212
src="https://img.shields.io/github/actions/workflow/status/Screenly/Browser-Extension/build.yaml?label=Build%20Browser%20Extensions&branch=master&style=for-the-badge">
1313
</a>
14-
<a href="https://github.com/Screenly/Browser-Extension/actions/workflows/lint.yaml?query=branch%3Amaster">
15-
<img alt="GitHub Actions Workflow Status" src="https://img.shields.io/github/actions/workflow/status/Screenly/Browser-Extension/lint.yaml?branch=master&style=for-the-badge&label=ESLint">
14+
<a href="https://github.com/Screenly/Browser-Extension/actions/workflows/lint-and-format.yaml?query=branch%3Amaster">
15+
<img alt="GitHub Actions Workflow Status" src="https://img.shields.io/github/actions/workflow/status/Screenly/Browser-Extension/lint-and-format.yaml?branch=master&style=for-the-badge&label=ESLint and Prettier">
1616
</a>
1717
<a href="https://app.sbomify.com/component/NwxGnn8u8K">
1818
<img src="https://img.shields.io/badge/_-sbomified-8A2BE2?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU3IiBoZWlnaHQ9IjI1NyIgdmlld0JveD0iMCAwIDI1NyAyNTciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9IjEyOC41IiBjeT0iMTI4LjUiIHI9IjEyOC41IiBmaWxsPSIjMTQxMDM1Ii8+CjxwYXRoIGQ9Ik02My45Mzc5IDgwLjAwMDlDNTcuNTM3NCA3OS45MTMyIDU3LjUyNDkgODkuOTk4OSA2My45Mzc5IDg5LjkxMTJIOTcuNzI4NUMxMDQuMTU0IDkwLjAyNCAxMDQuMTY3IDc5Ljg4ODIgOTcuNzI4NSA4MC4wMDA5SDYzLjkzNzlaTTExMy43OCA4MC4wMDA5QzEwNy40MDQgNzkuOTEzMiAxMDcuMzY3IDg5Ljk5ODkgMTEzLjc4IDg5LjkxMTJIMTk0LjA3NUMxOTYuOCA4OS45MTEyIDE5OSA4Ny42OTM2IDE5OSA4NC45NzQ5QzE5OSA4Mi4yMzExIDE5Ni44IDgwLjAxMzUgMTk0LjA3NSA4MC4wMTM1SDExMy43OFY4MC4wMDA5Wk02My45Mzc5IDk3LjE0MDRDNTcuNTQ5OSA5Ny4wNTI3IDU3LjUxMjQgMTA3LjE1MSA2My45Mzc5IDEwNy4wNTFIMTE5LjM1NUMxMjIuMDgxIDEwNy4wNTEgMTI0LjI4MSAxMDQuODMzIDEyNC4yODEgMTAyLjEwMkMxMjQuMjkzIDk5LjM3MDUgMTIyLjA4MSA5Ny4xNDA0IDExOS4zNTUgOTcuMTQwNEg2My45Mzc5Wk02My45Mzc5IDExNC4zMDVDNTcuNTYyNCAxMTQuMjE3IDU3LjUxMjQgMTI0LjI3OCA2My45Mzc5IDEyNC4xOUgxNDQuNjdDMTQ3LjM5NSAxMjQuMTkgMTQ5LjU5NiAxMjEuOTcyIDE0OS41OTYgMTE5LjI1NEMxNDkuNTk2IDExNi41MjIgMTQ3LjM4MyAxMTQuMzE3IDE0NC42NyAxMTQuMzE3SDYzLjkzNzlWMTE0LjMwNVpNMTk0LjA3NSAxNzYuOTk5QzIwMC40NzUgMTc3LjA4NyAyMDAuNDg4IDE2Ny4wMDEgMTk0LjA3NSAxNjcuMDg5SDE2MC4yODRDMTUzLjg1OCAxNjYuOTc2IDE1My44NDYgMTc3LjExMiAxNjAuMjg0IDE3Ni45OTlIMTk0LjA3NVpNMTQ0LjIyIDE3Ni45OTlDMTUwLjU5NiAxNzcuMDg3IDE1MC42MzMgMTY3LjAwMSAxNDQuMjIgMTY3LjA4OUg2My45MjU0QzYxLjIxMjcgMTY3LjEwMSA1OSAxNjkuMzA2IDU5IDE3Mi4wMzhDNTkgMTc0Ljc4MSA2MS4yMDAyIDE3Ni45OTkgNjMuOTI1NCAxNzYuOTk5SDE0NC4yMlpNMTk0LjA3NSAxNTkuODZDMjAwLjQ2MyAxNTkuOTQ3IDIwMC41IDE0OS44NDkgMTk0LjA3NSAxNDkuOTQ5SDEzOC42NTdDMTM1LjkzMiAxNDkuOTQ5IDEzMy43MzIgMTUyLjE2NyAxMzMuNzMyIDE1NC44OThDMTMzLjcxOSAxNTcuNjMgMTM1LjkzMiAxNTkuODYgMTM4LjY1NyAxNTkuODZIMTk0LjA3NVpNMTk0LjA3NSAxNDIuNjk1QzIwMC40NSAxNDIuNzgzIDIwMC41IDEzMi43MjIgMTk0LjA3NSAxMzIuODFIMTEzLjM0MkMxMTAuNjE3IDEzMi44MSAxMDguNDE3IDEzNS4wMjggMTA4LjQxNyAxMzcuNzQ2QzEwOC40MTcgMTQwLjQ3OCAxMTAuNjMgMTQyLjY4MyAxMTMuMzQyIDE0Mi42ODNIMTk0LjA3NVYxNDIuNjk1WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzM5Nl8yOTcpIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMzk2XzI5NyIgeDE9IjU5IiB5MT0iMTI4LjUiIHgyPSIyMDIuMjMzIiB5Mj0iMTQxLjU2NyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMDYiIHN0b3AtY29sb3I9IiM0MDU5RDAiLz4KPHN0b3Agb2Zmc2V0PSIwLjU1NSIgc3RvcC1jb2xvcj0iI0NDNThCQiIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNGNEI1N0YiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K">
@@ -91,15 +91,15 @@ $ ./bin/run_tests.sh
9191
* You can either select the `manifest.json` file or the zipped extension.
9292
* Find the extension URL and then open `moz-extension://<extension-id>/test/tests.html` in Firefox.
9393

94-
## :mag: Run Linter and Formatter
94+
## :sparkles: Run Linter and Formatter
9595

9696
Build the Docker image, which is a one-time operation:
9797

9898
```bash
9999
$ docker compose build
100100
```
101101

102-
Run the linter:
102+
### :broom: Run Linter
103103

104104
```bash
105105
$ ./bin/run_eslint.sh src/
@@ -112,14 +112,13 @@ This will run ESLint on the codebase and show any style issues or potential prob
112112
This project uses [Prettier](https://prettier.io/) to format the code.
113113
For more information why the linter and formatter are separate, see [this article about ESLint deprecating formatting rules](https://eslint.org/blog/2023/10/deprecating-formatting-rules/).
114114

115-
Build the Docker image, which is a one-time operation:
116-
115+
To check the code for formatting issues without changing any files, use the `check` mode:
117116
```bash
118-
$ docker compose build
117+
$ MODE="check" ./bin/run_formatter.sh
119118
```
120119

121-
Run the formatter:
120+
To format the code and fix formatting issues, use the `write` mode:
122121

123122
```bash
124-
$ ./bin/run_formatter.sh
123+
$ MODE="write" ./bin/run_formatter.sh
125124
```

bin/run_formatter.sh

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,17 @@
33
set -euo pipefail
44
IFS=$'\n\t'
55

6-
# -v mount under same path as on host to make the paths used by arc lint work.
6+
MODE="${MODE:-check}"
7+
8+
if [[ ! "$MODE" =~ ^(check|write)$ ]]; then
9+
echo "Invalid mode: $MODE"
10+
echo "\$MODE should be either \`check\` or \`write\`"
11+
exit 1
12+
fi
13+
714
docker run \
815
--rm \
916
-v $(pwd):/app:delegated \
1017
-v /app/node_modules \
1118
sbe_webpack:latest \
12-
npx prettier src/ --write
19+
npx prettier src/ --${MODE}

src/assets/ts/popup.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,16 @@ const PopupPage: React.FC = () => {
4141
setAssetDashboardLink(event.detail);
4242
}) as EventListener;
4343

44-
document.addEventListener('set-asset-dashboard-link', handleAssetDashboardLink);
44+
document.addEventListener(
45+
'set-asset-dashboard-link',
46+
handleAssetDashboardLink,
47+
);
4548

4649
return () => {
47-
document.removeEventListener('set-asset-dashboard-link', handleAssetDashboardLink);
50+
document.removeEventListener(
51+
'set-asset-dashboard-link',
52+
handleAssetDashboardLink,
53+
);
4854
};
4955
}, []);
5056

0 commit comments

Comments
 (0)