Skip to content

Merge pull request #1310 from redpanda-data/wasm-transforms #513

Merge pull request #1310 from redpanda-data/wasm-transforms

Merge pull request #1310 from redpanda-data/wasm-transforms #513

---
name: "Frontend Lint & Compile check"
on:
push:
paths:
- "frontend/**"
pull_request:
paths:
- "frontend/**"
jobs:
lint-and-compile:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Cache node modules
id: cache-npm
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('frontend/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '18.10.0'
- name: Install dependencies
working-directory: frontend
run: npm ci
- name: Run lint
working-directory: frontend
run: npm run lint
- name: Run build frontend
working-directory: frontend
run: |
REACT_APP_CONSOLE_GIT_SHA=$(echo $GITHUB_SHA | cut -c 1-6)
REACT_APP_CONSOLE_GIT_REF=$GITHUB_REF_NAME
REACT_APP_BUILD_TIMESTAMP=$(date +%s)
REACT_APP_DEV_HINT=true
npm run build
e2e-test:
needs: "lint-and-compile"
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Cache node modules
id: cache-npm
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('frontend/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Docker compose up
working-directory: frontend
run: /usr/bin/docker compose --file tests/config/docker-compose.yaml up --detach
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: '1.22'
cache-dependency-path: backend/go.sum
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install frontend dependencies
working-directory: frontend
run: npm ci
- name: Install Playwright browsers
working-directory: frontend
run: npm run install:browsers
- name: Install Go dependencies
working-directory: backend/cmd/api
run: go get .
- name: Build Go server
working-directory: backend/cmd/api
run: go build -v ./...
- name: Log networks
if: runner.debug == '1'
continue-on-error: true
run: docker network ls
- name: Network inspect
if: runner.debug == '1'
continue-on-error: true
run: docker network inspect redpanda-e2e_redpanda_network
- name: Log redpanda
if: runner.debug == '1'
continue-on-error: true
run: docker logs redpanda
- name: Log owlshop
if: runner.debug == '1'
continue-on-error: true
run: docker logs owlshop
- name: Log connect
if: runner.debug == '1'
continue-on-error: true
run: docker logs connect
- name: Run Playwright tests
working-directory: frontend
run: npm run e2e-test
- name: Upload Playwright report artifact
uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: playwright-report
path: frontend/playwright-report/
retention-days: 1