Skip to content

Commit c7d81e9

Browse files
committed
autofixes from Etherpad checkPlugin.js
1 parent b5b9035 commit c7d81e9

File tree

7 files changed

+1280
-529
lines changed

7 files changed

+1280
-529
lines changed

.eslintrc.cjs

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
'use strict';
2+
3+
// This is a workaround for https://github.com/eslint/eslint/issues/3458
4+
require('eslint-config-etherpad/patch/modern-module-resolution');
5+
6+
module.exports = {
7+
root: true,
8+
extends: 'etherpad/plugin',
9+
};

.github/dependabot.yml

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: "daily"
7+
- package-ecosystem: "npm"
8+
directory: "/"
9+
schedule:
10+
interval: "daily"
11+
versioning-strategy: "increase"

.github/workflows/backend-tests.yml

+61-47
Original file line numberDiff line numberDiff line change
@@ -8,54 +8,68 @@ jobs:
88
# run on pushes to any branch
99
# run on PRs from external forks
1010
if: |
11-
(github.event_name != 'pull_request')
12-
|| (github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id)
11+
(github.event_name != 'pull_request')
12+
|| (github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id)
1313
name: with Plugins
1414
runs-on: ubuntu-latest
1515

1616
steps:
17-
- uses: actions/setup-node@v2
18-
with:
19-
node-version: 12
20-
21-
- name: Install libreoffice
22-
run: |
23-
sudo add-apt-repository -y ppa:libreoffice/ppa
24-
sudo apt update
25-
sudo apt install -y --no-install-recommends libreoffice libreoffice-pdfimport
26-
27-
# clone etherpad-lite
28-
- name: Install etherpad core
29-
uses: actions/checkout@v2
30-
with:
31-
repository: ether/etherpad-lite
32-
33-
- name: Install all dependencies and symlink for ep_etherpad-lite
34-
run: src/bin/installDeps.sh
35-
36-
- name: Checkout plugin repository
37-
uses: actions/checkout@v2
38-
with:
39-
path: ./node_modules/__tmp
40-
41-
- name: Determine plugin name
42-
id: plugin_name
43-
run: |
44-
cd ./node_modules/__tmp
45-
npx -c 'printf %s\\n "::set-output name=plugin_name::${npm_package_name}"'
46-
47-
- name: Rename plugin directory
48-
run: |
49-
mv ./node_modules/__tmp ./node_modules/"${PLUGIN_NAME}"
50-
env:
51-
PLUGIN_NAME: ${{ steps.plugin_name.outputs.plugin_name }}
52-
53-
- name: Install plugin dependencies
54-
run: |
55-
cd ./node_modules/"${PLUGIN_NAME}"
56-
npm ci
57-
env:
58-
PLUGIN_NAME: ${{ steps.plugin_name.outputs.plugin_name }}
59-
60-
- name: Run the backend tests
61-
run: cd src && npm test
17+
-
18+
name: Install libreoffice
19+
run: |
20+
sudo add-apt-repository -y ppa:libreoffice/ppa
21+
sudo apt update
22+
sudo apt install -y --no-install-recommends libreoffice libreoffice-pdfimport
23+
-
24+
name: Install etherpad core
25+
uses: actions/checkout@v2
26+
with:
27+
repository: ether/etherpad-lite
28+
-
29+
name: Checkout plugin repository
30+
uses: actions/checkout@v2
31+
with:
32+
path: ./node_modules/__tmp
33+
-
34+
name: Determine plugin name
35+
id: plugin_name
36+
run: |
37+
cd ./node_modules/__tmp
38+
npx -c 'printf %s\\n "::set-output name=plugin_name::${npm_package_name}"'
39+
-
40+
name: Rename plugin directory
41+
run: |
42+
mv ./node_modules/__tmp ./node_modules/"${PLUGIN_NAME}"
43+
env:
44+
PLUGIN_NAME: ${{ steps.plugin_name.outputs.plugin_name }}
45+
-
46+
uses: actions/setup-node@v3
47+
with:
48+
node-version: 12
49+
cache: 'npm'
50+
cache-dependency-path: |
51+
src/package-lock.json
52+
src/bin/doc/package-lock.json
53+
node_modules/${{ steps.plugin_name.outputs.plugin_name }}/package-lock.json
54+
-
55+
name: Install plugin dependencies
56+
run: |
57+
cd ./node_modules/"${PLUGIN_NAME}"
58+
npm ci
59+
env:
60+
PLUGIN_NAME: ${{ steps.plugin_name.outputs.plugin_name }}
61+
# Etherpad core dependencies must be installed after installing the
62+
# plugin's dependencies, otherwise npm will try to hoist common
63+
# dependencies by removing them from src/node_modules and installing them
64+
# in the top-level node_modules. As of v6.14.10, npm's hoist logic appears
65+
# to be buggy, because it sometimes removes dependencies from
66+
# src/node_modules but fails to add them to the top-level node_modules.
67+
# Even if npm correctly hoists the dependencies, the hoisting seems to
68+
# confuse tools such as `npm outdated`, `npm update`, and some ESLint
69+
# rules.
70+
-
71+
name: Install Etherpad core dependencies
72+
run: src/bin/installDeps.sh
73+
-
74+
name: Run the backend tests
75+
run: cd src && npm test

.github/workflows/frontend-tests.yml

+99-81
Original file line numberDiff line numberDiff line change
@@ -9,84 +9,102 @@ jobs:
99
runs-on: ubuntu-latest
1010

1111
steps:
12-
- name: Generate Sauce Labs strings
13-
id: sauce_strings
14-
run: |
15-
printf %s\\n '::set-output name=name::${{github.event.repository.name}} ${{ github.workflow }} - ${{ github.job }}'
16-
printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}'
17-
18-
- uses: actions/setup-node@v2
19-
with:
20-
node-version: 12
21-
22-
- name: Check out Etherpad core
23-
uses: actions/checkout@v2
24-
with:
25-
repository: ether/etherpad-lite
26-
27-
- name: Check out the plugin
28-
uses: actions/checkout@v2
29-
with:
30-
path: ./node_modules/__tmp
31-
32-
- name: export GIT_HASH to env
33-
id: environment
34-
run: |
35-
cd ./node_modules/__tmp
36-
echo "::set-output name=sha_short::$(git rev-parse --short ${{ github.sha }})"
37-
38-
- name: Determine plugin name
39-
id: plugin_name
40-
run: |
41-
cd ./node_modules/__tmp
42-
npx -c 'printf %s\\n "::set-output name=plugin_name::${npm_package_name}"'
43-
44-
- name: Rename plugin directory
45-
env:
46-
PLUGIN_NAME: ${{ steps.plugin_name.outputs.plugin_name }}
47-
run: |
48-
mv ./node_modules/__tmp ./node_modules/"${PLUGIN_NAME}"
49-
50-
- name: Install plugin dependencies
51-
env:
52-
PLUGIN_NAME: ${{ steps.plugin_name.outputs.plugin_name }}
53-
run: |
54-
cd ./node_modules/"${PLUGIN_NAME}"
55-
npm ci
56-
57-
# This must be run after setting up the plugin, otherwise npm will try to
58-
# hoist common dependencies by removing them from src/node_modules and
59-
# installing them in the top-level node_modules. As of v6.14.10, npm's hoist
60-
# logic appears to be buggy, because it sometimes removes dependencies from
61-
# src/node_modules but fails to add them to the top-level node_modules. Even
62-
# if npm correctly hoists the dependencies, the hoisting seems to confuse
63-
# tools such as `npm outdated`, `npm update`, and some ESLint rules.
64-
- name: Install Etherpad core dependencies
65-
run: src/bin/installDeps.sh
66-
67-
- name: Create settings.json
68-
run: cp settings.json.template settings.json
69-
70-
- name: Disable import/export rate limiting
71-
run: |
72-
sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 0/' -i settings.json
73-
74-
- name: Remove standard frontend test files
75-
run: rm -rf src/tests/frontend/specs
76-
77-
- uses: saucelabs/sauce-connect-action@v1
78-
with:
79-
username: ${{ secrets.SAUCE_USERNAME }}
80-
accessKey: ${{ secrets.SAUCE_ACCESS_KEY }}
81-
tunnelIdentifier: ${{ steps.sauce_strings.outputs.tunnel_id }}
82-
83-
- name: Run the frontend tests
84-
shell: bash
85-
env:
86-
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
87-
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
88-
SAUCE_NAME: ${{ steps.sauce_strings.outputs.name }}
89-
TRAVIS_JOB_NUMBER: ${{ steps.sauce_strings.outputs.tunnel_id }}
90-
GIT_HASH: ${{ steps.environment.outputs.sha_short }}
91-
run: |
92-
src/tests/frontend/travis/runner.sh
12+
-
13+
name: Fail if Dependabot
14+
if: github.actor == 'dependabot[bot]'
15+
run: |
16+
cat <<EOF >&2
17+
Frontend tests skipped because Dependabot can't access secrets.
18+
Manually re-run the jobs to run the frontend tests.
19+
For more information, see:
20+
https://github.blog/changelog/2021-02-19-github-actions-workflows-triggered-by-dependabot-prs-will-run-with-read-only-permissions/
21+
EOF
22+
exit 1
23+
-
24+
name: Generate Sauce Labs strings
25+
id: sauce_strings
26+
run: |
27+
printf %s\\n '::set-output name=name::${{github.event.repository.name}} ${{ github.workflow }} - ${{ github.job }}'
28+
printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}'
29+
-
30+
name: Check out Etherpad core
31+
uses: actions/checkout@v2
32+
with:
33+
repository: ether/etherpad-lite
34+
-
35+
uses: actions/setup-node@v3
36+
with:
37+
node-version: 12
38+
cache: 'npm'
39+
cache-dependency-path: |
40+
src/package-lock.json
41+
src/bin/doc/package-lock.json
42+
-
43+
name: Check out the plugin
44+
uses: actions/checkout@v2
45+
with:
46+
path: ./node_modules/__tmp
47+
-
48+
name: export GIT_HASH to env
49+
id: environment
50+
run: |
51+
cd ./node_modules/__tmp
52+
echo "::set-output name=sha_short::$(git rev-parse --short ${{ github.sha }})"
53+
-
54+
name: Determine plugin name
55+
id: plugin_name
56+
run: |
57+
cd ./node_modules/__tmp
58+
npx -c 'printf %s\\n "::set-output name=plugin_name::${npm_package_name}"'
59+
-
60+
name: Rename plugin directory
61+
env:
62+
PLUGIN_NAME: ${{ steps.plugin_name.outputs.plugin_name }}
63+
run: |
64+
mv ./node_modules/__tmp ./node_modules/"${PLUGIN_NAME}"
65+
-
66+
name: Install plugin dependencies
67+
env:
68+
PLUGIN_NAME: ${{ steps.plugin_name.outputs.plugin_name }}
69+
run: |
70+
cd ./node_modules/"${PLUGIN_NAME}"
71+
npm ci
72+
# Etherpad core dependencies must be installed after installing the
73+
# plugin's dependencies, otherwise npm will try to hoist common
74+
# dependencies by removing them from src/node_modules and installing them
75+
# in the top-level node_modules. As of v6.14.10, npm's hoist logic appears
76+
# to be buggy, because it sometimes removes dependencies from
77+
# src/node_modules but fails to add them to the top-level node_modules.
78+
# Even if npm correctly hoists the dependencies, the hoisting seems to
79+
# confuse tools such as `npm outdated`, `npm update`, and some ESLint
80+
# rules.
81+
-
82+
name: Install Etherpad core dependencies
83+
run: src/bin/installDeps.sh
84+
-
85+
name: Create settings.json
86+
run: cp settings.json.template settings.json
87+
-
88+
name: Disable import/export rate limiting
89+
run: |
90+
sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 0/' -i settings.json
91+
-
92+
name: Remove standard frontend test files
93+
run: rm -rf src/tests/frontend/specs
94+
-
95+
uses: saucelabs/[email protected]
96+
with:
97+
username: ${{ secrets.SAUCE_USERNAME }}
98+
accessKey: ${{ secrets.SAUCE_ACCESS_KEY }}
99+
tunnelIdentifier: ${{ steps.sauce_strings.outputs.tunnel_id }}
100+
-
101+
name: Run the frontend tests
102+
shell: bash
103+
env:
104+
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
105+
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
106+
SAUCE_NAME: ${{ steps.sauce_strings.outputs.name }}
107+
TRAVIS_JOB_NUMBER: ${{ steps.sauce_strings.outputs.tunnel_id }}
108+
GIT_HASH: ${{ steps.environment.outputs.sha_short }}
109+
run: |
110+
src/tests/frontend/travis/runner.sh

0 commit comments

Comments
 (0)