feat: sync Notion AI Meeting Notes #1168
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Docker | |
| # Bootstrap the split between validation and publishing on a GitHub-hosted | |
| # runner. Follow-up PRs can return this dispatcher to docker.yml@main once | |
| # that read-only reusable workflow is present on the default branch. | |
| on: | |
| pull_request: | |
| paths: | |
| - 'Dockerfile' | |
| - '.dockerignore' | |
| - '.github/workflows/docker.yml' | |
| - '.github/workflows/docker-publish.yml' | |
| - 'go.mod' | |
| - 'go.sum' | |
| - 'Makefile' | |
| - 'api/openapi.yaml' | |
| - 'pkg/client/openapi.yaml' | |
| - 'scripts/generate-web-client.mjs' | |
| - 'web/**' | |
| - 'internal/web/**' | |
| - '**/*.go' | |
| - '.github/workflows/docker-pr.yml' | |
| permissions: read-all | |
| jobs: | |
| validate: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0 | |
| - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 | |
| with: | |
| bun-version: 1.3.14 | |
| - name: Build browser application | |
| run: make web-assets-check | |
| - name: Build amd64 image | |
| uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0 | |
| with: | |
| context: . | |
| platforms: linux/amd64 | |
| push: false | |
| load: true | |
| tags: msgvault:test | |
| build-args: | | |
| VERSION=test | |
| COMMIT=${{ github.sha }} | |
| BUILD_DATE=test | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max | |
| - name: Smoke test (amd64) | |
| run: | | |
| docker run --rm msgvault:test version | |
| docker run --rm msgvault:test --help | |
| tmpdir="$(mktemp -d)" | |
| trap 'sudo rm -rf "$tmpdir"' EXIT | |
| sudo chown 1000:1000 "$tmpdir" | |
| docker run --rm -v "$tmpdir:/data" msgvault:test init-db | |
| sudo test -f "$tmpdir/msgvault.db" || { sudo ls -la "$tmpdir"; echo "FATAL: database not created"; exit 1; } | |
| # Runtime is binary-only: no frontend toolchain or external asset tree. | |
| docker run --rm --entrypoint sh msgvault:test -c \ | |
| 'test ! -e /usr/local/bin/bun && test ! -e /usr/local/bin/node && test ! -d /usr/share/msgvault/web' |