From 9e99c0c10a1660845c4d89254576255c6991158e Mon Sep 17 00:00:00 2001 From: Aleksei Gusev Date: Wed, 27 Nov 2024 11:26:50 +0200 Subject: [PATCH] Define Github Actions workflow --- .github/workflows/build.yml | 87 +++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..e270b31 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,87 @@ +name: CI + +on: + push: + branches: [main] + paths-ignore: + - '*.md' + pull_request: + branches: [main] + paths-ignore: + - '*.md' + +env: + NODE_VERSION: '18' + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + cache: 'yarn' + cache-dependency-path: | + yarn.lock + - run: yarn install + - run: yarn run lint + + format: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + cache: 'yarn' + cache-dependency-path: | + yarn.lock + - run: yarn install + - run: yarn run format + + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + cache: 'yarn' + cache-dependency-path: | + yarn.lock + + - name: Fetch yarn deps + run: yarn install --frozen-lockfile + env: + PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: true + + - run: yarn run build + + - run: yarn run e2e:prepare + + - name: Install Electron deps + run: sudo apt-get update && sudo apt-get install -y libfuse2 + + - name: Run Playwright tests + run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npx playwright test --reporter github + + - name: Save test artifacts + uses: actions/upload-artifact@v4 + if: ${{ failure() }} + with: + name: e2e-test-report + path: e2e-dump/* + retention-days: 1 + + - name: Save electron app logs + uses: actions/upload-artifact@v4 + if: ${{ failure() }} + with: + name: electron-logs + path: tmp/user-home/.config/Logseq/logs/ + retention-days: 1