mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-28 03:16:16 -04:00
add github workflows
This commit is contained in:
parent
776eda2d4e
commit
c0baf05ee8
7 changed files with 246 additions and 0 deletions
50
.github/workflows/backend-tests.yml
vendored
Normal file
50
.github/workflows/backend-tests.yml
vendored
Normal file
|
@ -0,0 +1,50 @@
|
|||
name: "Backend tests"
|
||||
|
||||
# any branch is useful for testing before a PR is submitted
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
withoutplugins:
|
||||
name: Backend tests without plugins
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Install libreoffice
|
||||
run: |
|
||||
sudo add-apt-repository -y ppa:libreoffice/ppa
|
||||
sudo apt update
|
||||
sudo apt install -y --no-install-recommends libreoffice libreoffice-pdfimport
|
||||
|
||||
- name: Install all dependencies and symlink for ep_etherpad-lite
|
||||
run: bin/installDeps.sh
|
||||
|
||||
# configures some settings and runs npm run test
|
||||
- name: Run the backend tests
|
||||
run: tests/frontend/travis/runnerBackend.sh
|
||||
|
||||
withplugins:
|
||||
name: Backend tests with Plugins
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Install libreoffice
|
||||
run: |
|
||||
sudo add-apt-repository -y ppa:libreoffice/ppa
|
||||
sudo apt update
|
||||
sudo apt install -y --no-install-recommends libreoffice libreoffice-pdfimport
|
||||
|
||||
- name: Install all dependencies and symlink for ep_etherpad-lite
|
||||
run: bin/installDeps.sh
|
||||
|
||||
- name: Install etherpad plugins
|
||||
run: npm install ep_align ep_author_hover ep_cursortrace ep_font_size ep_hash_auth ep_headings2 ep_markdown ep_readonly_guest ep_spellcheck ep_subscript_and_superscript ep_table_of_contents
|
||||
|
||||
# configures some settings and runs npm run test
|
||||
- name: Run the backend tests
|
||||
run: tests/frontend/travis/runnerBackend.sh
|
21
.github/workflows/dockerfile.yml
vendored
Normal file
21
.github/workflows/dockerfile.yml
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
name: "Dockerfile"
|
||||
|
||||
# any branch is useful for testing before a PR is submitted
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
dockerfile:
|
||||
name: Builds an image using Dockerfile and runs a connectivity test
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: docker build
|
||||
run: |
|
||||
docker build -t etherpad:test .
|
||||
docker run -d -p 9001:9001 etherpad:test
|
||||
./bin/installDeps.sh
|
||||
sleep 3 # delay for startup?
|
||||
cd src && npm run test-container
|
80
.github/workflows/frontend-tests.yml
vendored
Normal file
80
.github/workflows/frontend-tests.yml
vendored
Normal file
|
@ -0,0 +1,80 @@
|
|||
name: "Frontend tests"
|
||||
|
||||
# any branch is useful for testing before a PR is submitted
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
withoutplugins:
|
||||
name: Frontend tests without plugins
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Run sauce-connect-action
|
||||
shell: bash
|
||||
env:
|
||||
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
|
||||
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
|
||||
TRAVIS_JOB_NUMBER: ${{ github.run_id }}-${{ github.run_number }}
|
||||
run: tests/frontend/travis/sauce_tunnel.sh
|
||||
|
||||
- name: Install all dependencies and symlink for ep_etherpad-lite
|
||||
run: bin/installDeps.sh
|
||||
|
||||
- name: export GIT_HASH to env
|
||||
id: environment
|
||||
run: echo "::set-output name=sha_short::$(git rev-parse --short ${{ github.sha }})"
|
||||
|
||||
- name: Write custom settings.json with loglevel WARN
|
||||
run: "sed 's/\"loglevel\": \"INFO\",/\"loglevel\": \"WARN\",/' < settings.json.template > settings.json"
|
||||
|
||||
- name: Run the frontend tests
|
||||
shell: bash
|
||||
env:
|
||||
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
|
||||
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
|
||||
TRAVIS_JOB_NUMBER: ${{ github.run_id }}-${{ github.run_number }}
|
||||
GIT_HASH: ${{ steps.environment.outputs.sha_short }}
|
||||
run: |
|
||||
tests/frontend/travis/runner.sh
|
||||
|
||||
withplugins:
|
||||
name: Frontend tests with plugins
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Run sauce-connect-action
|
||||
shell: bash
|
||||
env:
|
||||
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
|
||||
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
|
||||
TRAVIS_JOB_NUMBER: ${{ github.run_id }}-${{ github.run_number }}
|
||||
run: tests/frontend/travis/sauce_tunnel.sh
|
||||
|
||||
- name: Install all dependencies and symlink for ep_etherpad-lite
|
||||
run: bin/installDeps.sh
|
||||
|
||||
- name: Install etherpad plugins
|
||||
run: npm install ep_align ep_author_hover ep_cursortrace ep_font_size ep_hash_auth ep_headings2 ep_markdown ep_readonly_guest ep_spellcheck ep_subscript_and_superscript ep_table_of_contents
|
||||
|
||||
- name: export GIT_HASH to env
|
||||
id: environment
|
||||
run: echo "::set-output name=sha_short::$(git rev-parse --short ${{ github.sha }})"
|
||||
|
||||
- name: Write custom settings.json with loglevel WARN
|
||||
run: "sed 's/\"loglevel\": \"INFO\",/\"loglevel\": \"WARN\",/' < settings.json.template > settings.json"
|
||||
|
||||
- name: Run the frontend tests
|
||||
shell: bash
|
||||
env:
|
||||
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
|
||||
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
|
||||
TRAVIS_JOB_NUMBER: ${{ github.run_id }}-${{ github.run_number }}
|
||||
GIT_HASH: ${{ steps.environment.outputs.sha_short }}
|
||||
run: |
|
||||
tests/frontend/travis/runner.sh
|
19
.github/workflows/lint-package-lock.yml
vendored
Normal file
19
.github/workflows/lint-package-lock.yml
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
name: "Lint package-lock.json"
|
||||
|
||||
# any branch is useful for testing before a PR is submitted
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
lint-package-lock:
|
||||
name: Lint the package-lock.json file
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Install lockfile-lint
|
||||
run: npm install lockfile-lint
|
||||
|
||||
- name: Run lockfile-lint on package-lock.json
|
||||
run: npx lockfile-lint --path src/package-lock.json --validate-https --allowed-hosts npm
|
43
.github/workflows/load-test.yml
vendored
Normal file
43
.github/workflows/load-test.yml
vendored
Normal file
|
@ -0,0 +1,43 @@
|
|||
name: "Loadtest"
|
||||
|
||||
# any branch is useful for testing before a PR is submitted
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
withoutplugins:
|
||||
name: Load test without plugins
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Install all dependencies and symlink for ep_etherpad-lite
|
||||
run: bin/installDeps.sh
|
||||
|
||||
- name: Install etherpad-load-test
|
||||
run: sudo npm install -g etherpad-load-test
|
||||
|
||||
- name: Run load test
|
||||
run: tests/frontend/travis/runnerLoadTest.sh
|
||||
|
||||
withplugins:
|
||||
name: Load test with Plugins
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Install all dependencies and symlink for ep_etherpad-lite
|
||||
run: bin/installDeps.sh
|
||||
|
||||
- name: Install etherpad-load-test
|
||||
run: sudo npm install -g etherpad-load-test
|
||||
|
||||
- name: Install etherpad plugins
|
||||
run: npm install ep_align ep_author_hover ep_cursortrace ep_font_size ep_hash_auth ep_headings2 ep_markdown ep_readonly_guest ep_spellcheck ep_subscript_and_superscript ep_table_of_contents
|
||||
|
||||
# configures some settings and runs npm run test
|
||||
- name: Run load test
|
||||
run: tests/frontend/travis/runnerLoadTest.sh
|
33
.github/workflows/rate-limit.yml
vendored
Normal file
33
.github/workflows/rate-limit.yml
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
name: "Test rate limit"
|
||||
|
||||
# any branch is useful for testing before a PR is submitted
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
ratelimit:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: docker network
|
||||
run: docker network create --subnet=172.23.42.0/16 ep_net
|
||||
|
||||
- name: build docker image
|
||||
run: |
|
||||
docker build -f Dockerfile -t epl-debian-slim .
|
||||
docker build -f tests/ratelimit/Dockerfile.nginx -t nginx-latest .
|
||||
docker build -f tests/ratelimit/Dockerfile.anotherip -t anotherip .
|
||||
- name: run docker images
|
||||
run: |
|
||||
docker run --name etherpad-docker -p 9000:9001 --rm --network ep_net --ip 172.23.42.2 -e 'TRUST_PROXY=true' epl-debian-slim &
|
||||
docker run -p 8081:80 --rm --network ep_net --ip 172.23.42.1 -d nginx-latest
|
||||
docker run --rm --network ep_net --ip 172.23.42.3 --name anotherip -dt anotherip
|
||||
|
||||
- name: install dependencies and create symlink for ep_etherpad-lite
|
||||
run: bin/installDeps.sh
|
||||
|
||||
- name: run rate limit test
|
||||
run: |
|
||||
cd tests/ratelimit
|
||||
./testlimits.sh
|
0
tests/ratelimit/testlimits.sh
Normal file → Executable file
0
tests/ratelimit/testlimits.sh
Normal file → Executable file
Loading…
Add table
Add a link
Reference in a new issue