diff --git a/.github/deployment/Dockerfile-affine-multiplatform b/.github/deployment/Dockerfile-affine-multiplatform new file mode 100644 index 0000000000..e005ca3ffd --- /dev/null +++ b/.github/deployment/Dockerfile-affine-multiplatform @@ -0,0 +1,13 @@ +ARG BASE_IMAGE=localhost:5000/toeverything/relocate:latest + +FROM ${BASE_IMAGE} as relocate + +# ============= +# AFFiNE image +# ============= +FROM caddy:2.4.6-alpine as AFFiNE +WORKDIR /app +COPY --from=relocate /app . + +EXPOSE 3000 +CMD ["caddy", "run"] diff --git a/.github/workflows/affine.yml b/.github/workflows/affine.yml index a5c0eafe70..412516f177 100644 --- a/.github/workflows/affine.yml +++ b/.github/workflows/affine.yml @@ -19,6 +19,7 @@ env: NAMESPACE: toeverything AFFINE_IMAGE_NAME: AFFiNE IMAGE_TAG_LATEST: nightly-latest + LOCAL_CACHE: localhost:5000/toeverything/relocate:latest jobs: ligo-virgo: @@ -28,30 +29,57 @@ jobs: contents: read packages: write + services: + registry: + image: registry:2 + ports: + - 5000:5000 + steps: - name: Checkout uses: actions/checkout@v2 - name: Log in to the Container registry - uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + uses: docker/login-action@v2 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v1 + with: + driver-opts: network=host + - name: Extract metadata (tags, labels) for Docker (AFFiNE-Local) id: meta_affine - uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + uses: docker/metadata-action@v4 with: images: ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/${{ env.AFFINE_IMAGE_NAME }} tags: ${{ env.IMAGE_TAG_LATEST }} - name: Build and push Docker image (AFFINE-Local) - uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc + uses: docker/build-push-action@v3 with: context: . + push: true file: ./.github/deployment/Dockerfile-affine + tags: ${{ env.LOCAL_CACHE }} + target: AFFiNE + + - name: Build and push Docker image (AFFINE-Local) + uses: docker/build-push-action@v3 + with: + context: . + platforms: linux/amd64,linux/arm64/v8 + file: ./.github/deployment/Dockerfile-affine-multiplatform push: ${{ github.ref == 'refs/heads/master' && true || false }} tags: ${{ steps.meta_affine.outputs.tags }} labels: ${{ steps.meta_affine.outputs.labels }} target: AFFiNE + build-args: | + BASE_IMAGE=${{ env.LOCAL_CACHE }} diff --git a/.vscode/settings.json b/.vscode/settings.json index d6087c2b04..defe3ab909 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,6 +8,7 @@ "Backlinks", "blockdb", "booktitle", + "Buildx", "Cascader", "clsx", "cssmodule",