Live plugin viewer #1172
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Windows Build" | |
# any branch is useful for testing before a PR is submitted | |
on: [push, pull_request] | |
permissions: | |
contents: read | |
jobs: | |
build-zip: | |
# run on pushes to any branch | |
# run on PRs from external forks | |
if: | | |
(github.event_name != 'pull_request') | |
|| (github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id) | |
name: Build .zip | |
runs-on: windows-latest | |
steps: | |
- | |
uses: msys2/setup-msys2@v2 | |
with: | |
path-type: inherit | |
install: >- | |
zip | |
- | |
name: Checkout repository | |
uses: actions/checkout@v4 | |
- | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
cache: 'npm' | |
cache-dependency-path: | | |
src/package-lock.json | |
src/bin/doc/package-lock.json | |
- | |
name: Install the ep_etherpad-lite package from ./src | |
shell: msys2 {0} | |
run: src/bin/installDeps.sh | |
# - | |
# name: Run npm i once to make bin files available - why is this needed at all? | |
# run: npm i | |
- | |
name: Run the backend tests | |
shell: msys2 {0} | |
run: cd src && npm run test-on-windows | |
- | |
name: Build the .zip | |
shell: msys2 {0} | |
run: src/bin/buildForWindows.sh | |
- | |
name: Archive production artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: etherpad-win.zip | |
path: etherpad-win.zip | |
build-exe: | |
if: | | |
(github.event_name != 'pull_request') | |
|| (github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id) | |
name: Build .exe | |
needs: build-zip | |
runs-on: windows-latest | |
steps: | |
- | |
name: Checkout repository | |
uses: actions/checkout@v4 | |
- | |
name: Download .zip | |
uses: actions/download-artifact@v3 | |
with: | |
name: etherpad-win.zip | |
path: .. | |
- | |
name: Extract .zip | |
working-directory: .. | |
run: 7z x etherpad-win.zip -oetherpad-zip | |
- | |
name: Create installer | |
uses: joncloud/[email protected] | |
with: | |
script-file: 'src/bin/nsis/etherpad.nsi' | |
- | |
name: Archive production artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: etherpad-win.exe | |
path: etherpad-win.exe | |
deploy-zip: | |
# run on pushes to any branch | |
# run on PRs from external forks | |
permissions: | |
contents: write | |
if: | | |
(github.event_name != 'pull_request') | |
|| (github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id) | |
name: Deploy | |
needs: build-zip | |
runs-on: windows-latest | |
steps: | |
- | |
name: Download zip | |
uses: actions/download-artifact@v3 | |
with: | |
name: etherpad-win.zip | |
- | |
name: Extract Etherpad | |
run: 7z x etherpad-win.zip -oetherpad | |
- | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
cache: 'npm' | |
cache-dependency-path: | | |
etherpad/src/package-lock.json | |
etherpad/src/bin/doc/package-lock.json | |
- | |
name: Install Cypress | |
run: cd etherpad && npm install cypress | |
- | |
name: Run Etherpad | |
run: | | |
cd etherpad | |
node node_modules\ep_etherpad-lite\node\server.js & | |
curl --connect-timeout 10 --max-time 20 --retry 5 --retry-delay 10 --retry-max-time 60 --retry-connrefused http://127.0.0.1:9001/p/test | |
node_modules\cypress\bin\cypress run --config-file src\tests\frontendcypress\cypress.config.js | |
# On release, upload windows zip to GitHub release tab | |
- name: Rename to etherpad-lite-win.zip | |
shell: powershell | |
run: mv etherpad-win.zip etherpad-lite-win.zip | |
- name: upload binaries to release | |
uses: softprops/action-gh-release@v1 | |
if: ${{startsWith(github.ref, 'refs/tags/v') }} | |
with: | |
files: etherpad-lite-win.zip |