deploy.yml 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. name: CI
  2. on:
  3. push:
  4. branches: [master]
  5. paths:
  6. - "packages/editor/**"
  7. - "apps/dev/**"
  8. workflow_dispatch:
  9. inputs:
  10. run_e2e:
  11. description: "Run Playwright E2E tests"
  12. type: boolean
  13. default: false
  14. jobs:
  15. test:
  16. runs-on: codeberg-small
  17. steps:
  18. - uses: actions/checkout@v5
  19. - uses: actions/setup-node@v5
  20. with:
  21. node-version: 22
  22. - run: corepack enable && corepack prepare pnpm@latest --activate
  23. - run: pnpm install
  24. - name: Unit tests
  25. run: pnpm test
  26. deploy:
  27. needs: test
  28. runs-on: codeberg-small
  29. steps:
  30. - uses: actions/checkout@v5
  31. - uses: actions/setup-node@v5
  32. with:
  33. node-version: 22
  34. - run: corepack enable && corepack prepare pnpm@latest --activate
  35. - run: pnpm install
  36. - run: BASE_URL=/editor/ pnpm build
  37. - if: ${{ (forge.event_name == 'push' && forge.event.ref == 'refs/heads/master') || forge.event_name == 'workflow_dispatch' }}
  38. uses: actions/git-pages@v2
  39. with:
  40. site: https://${{ forge.event.repository.owner.username }}.codeberg.page/${{ forge.event.repository.name }}/
  41. token: ${{ forge.token }}
  42. source: apps/dev/dist/
  43. e2e:
  44. if: ${{ forge.event_name == 'workflow_dispatch' && forge.event.inputs.run_e2e == 'true' }}
  45. runs-on: codeberg-small
  46. steps:
  47. - uses: actions/checkout@v5
  48. - uses: actions/setup-node@v5
  49. with:
  50. node-version: 22
  51. - run: corepack enable && corepack prepare pnpm@latest --activate
  52. - run: pnpm install
  53. - run: pnpm --filter @enesis/editor exec playwright install chromium
  54. - name: E2E tests
  55. run: pnpm test:e2e