mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-01-20 06:29:53 +01:00
04063d664b
* fix bin folder and workflows as far its possible cleanup of dockerfile changed paths of scripts add lock file fix working directory for workflows fix windows bin fix travis (is travis used anyway?) fix package refs remove pnpm-lock file in root as these conflicts with the docker volume setup optimize comments use install again refactor prod image call to run fix --workspace can only be used inside a workspace correct comment try fix pipeline try fix pipeline for upgrade-from-latest-release install all deps smaller adjustments save update dockerfile remove workspace command fix run test command start repair latest release workflow start repair latest release workflow start repair latest release workflow further repairs * remove test plugin from docker compose
110 lines
4 KiB
YAML
110 lines
4 KiB
YAML
# Publicly credit Sauce Labs because they generously support open source
|
|
# projects.
|
|
name: "frontend tests powered by Sauce Labs"
|
|
|
|
on: [push]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
-
|
|
name: Fail if Dependabot
|
|
if: github.actor == 'dependabot[bot]'
|
|
run: |
|
|
cat <<EOF >&2
|
|
Frontend tests skipped because Dependabot can't access secrets.
|
|
Manually re-run the jobs to run the frontend tests.
|
|
For more information, see:
|
|
https://github.blog/changelog/2021-02-19-github-actions-workflows-triggered-by-dependabot-prs-will-run-with-read-only-permissions/
|
|
EOF
|
|
exit 1
|
|
-
|
|
name: Generate Sauce Labs strings
|
|
id: sauce_strings
|
|
run: |
|
|
printf %s\\n '::set-output name=name::${{github.event.repository.name}} ${{ github.workflow }} - ${{ github.job }}'
|
|
printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}'
|
|
-
|
|
name: Check out Etherpad core
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: ether/etherpad-lite
|
|
-
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 12
|
|
cache: 'npm'
|
|
cache-dependency-path: |
|
|
src/package-lock.json
|
|
bin/doc/package-lock.json
|
|
-
|
|
name: Check out the plugin
|
|
uses: actions/checkout@v3
|
|
with:
|
|
path: ./node_modules/__tmp
|
|
-
|
|
name: export GIT_HASH to env
|
|
id: environment
|
|
run: |
|
|
cd ./node_modules/__tmp
|
|
echo "::set-output name=sha_short::$(git rev-parse --short ${{ github.sha }})"
|
|
-
|
|
name: Determine plugin name
|
|
id: plugin_name
|
|
run: |
|
|
cd ./node_modules/__tmp
|
|
npx -c 'printf %s\\n "::set-output name=plugin_name::${npm_package_name}"'
|
|
-
|
|
name: Rename plugin directory
|
|
env:
|
|
PLUGIN_NAME: ${{ steps.plugin_name.outputs.plugin_name }}
|
|
run: |
|
|
mv ./node_modules/__tmp ./node_modules/"${PLUGIN_NAME}"
|
|
-
|
|
name: Install plugin dependencies
|
|
env:
|
|
PLUGIN_NAME: ${{ steps.plugin_name.outputs.plugin_name }}
|
|
run: |
|
|
cd ./node_modules/"${PLUGIN_NAME}"
|
|
npm ci
|
|
# Etherpad core dependencies must be installed after installing the
|
|
# plugin's dependencies, otherwise npm will try to hoist common
|
|
# dependencies by removing them from src/node_modules and installing them
|
|
# in the top-level node_modules. As of v6.14.10, npm's hoist logic appears
|
|
# to be buggy, because it sometimes removes dependencies from
|
|
# src/node_modules but fails to add them to the top-level node_modules.
|
|
# Even if npm correctly hoists the dependencies, the hoisting seems to
|
|
# confuse tools such as `npm outdated`, `npm update`, and some ESLint
|
|
# rules.
|
|
-
|
|
name: Install Etherpad core dependencies
|
|
run: bin/installDeps.sh
|
|
-
|
|
name: Create settings.json
|
|
run: cp settings.json.template settings.json
|
|
-
|
|
name: Disable import/export rate limiting
|
|
run: |
|
|
sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 0/' -i settings.json
|
|
-
|
|
name: Remove standard frontend test files
|
|
run: rm -rf src/tests/frontend/specs
|
|
-
|
|
uses: saucelabs/sauce-connect-action@v2.1.1
|
|
with:
|
|
username: ${{ secrets.SAUCE_USERNAME }}
|
|
accessKey: ${{ secrets.SAUCE_ACCESS_KEY }}
|
|
tunnelIdentifier: ${{ steps.sauce_strings.outputs.tunnel_id }}
|
|
-
|
|
name: Run the frontend tests
|
|
shell: bash
|
|
env:
|
|
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
|
|
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
|
|
SAUCE_NAME: ${{ steps.sauce_strings.outputs.name }}
|
|
TRAVIS_JOB_NUMBER: ${{ steps.sauce_strings.outputs.tunnel_id }}
|
|
GIT_HASH: ${{ steps.environment.outputs.sha_short }}
|
|
run: |
|
|
src/tests/frontend/travis/runner.sh
|