A lexicon-driven AppView for ATProto.
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145name: Release
on: push: branches: [main, dev] paths-ignore: - ".github/workflows/mirror.yml" - ".github/workflows/release-sdk.yml" - "packages/**" pull_request: branches: [main, dev] paths-ignore: - ".github/workflows/mirror.yml" - ".github/workflows/release-sdk.yml" - "packages/**"
env: SQLX_OFFLINE: true
jobs: unit-tests: runs-on: depot-ubuntu-24.04
steps: - name: Checkout repository uses: actions/checkout@v4
- name: Cache cargo dependencies uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git key: cargo-deps-${{ runner.os }}-${{ hashFiles('Cargo.lock') }} restore-keys: | cargo-deps-${{ runner.os }}-
- name: Run unit tests run: cargo test --lib
e2e-tests: runs-on: depot-ubuntu-24.04
services: postgres: image: postgres:16-alpine env: POSTGRES_USER: happyview POSTGRES_PASSWORD: happyview POSTGRES_DB: happyview_test ports: - 5432:5432 options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps: - name: Checkout repository uses: actions/checkout@v4
- name: Cache cargo dependencies uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git key: cargo-deps-${{ runner.os }}-${{ hashFiles('Cargo.lock') }} restore-keys: | cargo-deps-${{ runner.os }}-
- name: Add WASM target run: rustup target add wasm32-unknown-unknown
- name: Build test plugin run: cargo build --manifest-path tests/fixtures/test_plugin/Cargo.toml --target wasm32-unknown-unknown --release
- name: Run e2e tests env: TEST_DATABASE_URL: postgres://happyview:happyview@localhost:5432/happyview_test run: cargo test --tests
frontend: runs-on: depot-ubuntu-24.04
steps: - name: Checkout repository uses: actions/checkout@v4
- name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 24
- name: Build frontend working-directory: web run: npm ci && npm run build
lint: runs-on: depot-ubuntu-24.04
steps: - name: Checkout repository uses: actions/checkout@v4
- name: Cache cargo dependencies uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git key: cargo-deps-${{ runner.os }}-${{ hashFiles('Cargo.lock') }} restore-keys: | cargo-deps-${{ runner.os }}-
- name: Check formatting run: cargo fmt -- --check
- name: Clippy run: cargo clippy --all-targets -- -D warnings
release: if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev') needs: [unit-tests, e2e-tests, frontend, lint] runs-on: depot-ubuntu-24.04 permissions: contents: write
steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0
- name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 22
- name: Release env: GITHUB_TOKEN: ${{ secrets.DISPATCH_GH_TOKEN }} run: npx semantic-release