name: Build defaults: run: shell: bash env: CI: true on: push: branches: - master pull_request: repository_dispatch: types: [vrt_updated] concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.event.client_payload.pr_number || github.ref }} cancel-in-progress: ${{ github.ref != 'refs/heads/master' }} jobs: api: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: ref: ${{ github.event.client_payload.branch || github.ref }} - name: Set up environment uses: ./.github/actions/setup - name: Build API run: cd packages/api && yarn build - name: Create package tgz run: cd packages/api && yarn pack && mv package.tgz actual-api.tgz - name: Upload Build uses: actions/upload-artifact@v4 with: name: actual-api path: packages/api/actual-api.tgz crdt: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: ref: ${{ github.event.client_payload.branch || github.ref }} - name: Set up environment uses: ./.github/actions/setup - name: Build CRDT run: cd packages/crdt && yarn build - name: Create package tgz run: cd packages/crdt && yarn pack && mv package.tgz actual-crdt.tgz - name: Upload Build uses: actions/upload-artifact@v4 with: name: actual-crdt path: packages/crdt/actual-crdt.tgz web: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: ref: ${{ github.event.client_payload.branch || github.ref }} - name: Set up environment uses: ./.github/actions/setup - name: Build Web run: yarn build:browser - name: Upload Build uses: actions/upload-artifact@v4 with: name: actual-web path: packages/desktop-client/build - name: Upload Build Stats uses: actions/upload-artifact@v4 with: name: build-stats path: packages/desktop-client/build-stats server: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: ref: ${{ github.event.client_payload.branch || github.ref }} - name: Set up environment uses: ./.github/actions/setup - name: Build Server run: yarn workspace @actual-app/sync-server build - name: Upload Build uses: actions/upload-artifact@v4 with: name: sync-server path: packages/sync-server/build