Skip to content

Merge pull request #1007 from AppFlowy-IO/disable-loading-collab-policy #377

Merge pull request #1007 from AppFlowy-IO/disable-loading-collab-policy

Merge pull request #1007 from AppFlowy-IO/disable-loading-collab-policy #377

name: DockerHub Build and Push
#`DOCKER_HUB_USERNAME` is the username you use to log in to Docker Hub at https://hub.docker.com/. It's your Docker Hub
# account username.
#`DOCKER_HUB_ACCESS_TOKEN` is a security token that you should create in your Docker Hub account settings, specifically
# under "account settings / security." This token should be generated with read and write access permissions to Docker
# Hub repositories. It allows you to authenticate and interact with Docker Hub programmatically, such as pushing and pulling Docker images or making API requests.
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+*' # Trigger for tags like v1.2.3
- '[0-9]+.[0-9]+.[0-9]+*' # Trigger for tags like 1.2.3 or 1.2.3-alpha
env:
CARGO_TERM_COLOR: always
LATEST_TAG: latest
jobs:
gotrue_image:
runs-on: ubuntu-22.04
steps:
- name: Check out the repository
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build and Push GoTrue
run: |
export TAG=${GITHUB_REF#refs/*/}
docker buildx build --platform linux/amd64,linux/arm64 -t appflowyinc/gotrue:${TAG} -t appflowyinc/gotrue:latest -f docker/gotrue/Dockerfile --push docker/gotrue
appflowy_cloud_image:
runs-on: ubuntu-22.04
env:
IMAGE_NAME: ${{ secrets.DOCKER_HUB_USERNAME }}/appflowy_cloud
strategy:
fail-fast: false
matrix:
job:
- { name: "amd64", docker_platform: "linux/amd64" }
- { name: "arm64v8", docker_platform: "linux/arm64" }
steps:
- name: Check out the repository
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Get git tag
id: vars
run: |
T=${GITHUB_REF#refs/*/} # Remove "refs/*/" prefix from GITHUB_REF
echo "GIT_TAG=$T" >> $GITHUB_ENV
- name: Extract metadata
id: meta
uses: docker/metadata-action@v4
with:
images: registry.hub.docker.com/${{ env.IMAGE_NAME }}
- name: Build and push ${{ matrix.job.image_name }}:${{ env.GIT_TAG }}
uses: docker/build-push-action@v5
with:
platforms: ${{ matrix.job.docker_platform }}
push: true
tags: |
${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}-${{ matrix.job.name }}
${{ env.IMAGE_NAME }}:${{ env.GIT_TAG }}-${{ matrix.job.name }}
labels: ${{ steps.meta.outputs.labels }}
provenance: false
build-args: |
PROFILE=release
FEATURES=
- name: Logout from Docker Hub
if: always()
run: docker logout
appflowy_cloud_docker_manifest:
runs-on: ubuntu-22.04
needs: [ appflowy_cloud_image ]
strategy:
fail-fast: false
matrix:
job:
- { image_name: "appflowy_cloud" }
steps:
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Get git tag
id: vars
run: |
T=${GITHUB_REF#refs/*/} # Remove "refs/*/" prefix from GITHUB_REF
echo "GIT_TAG=$T" >> $GITHUB_ENV
- name: Create and push manifest for ${{ matrix.job.image_name }}:version
uses: Noelware/docker-manifest-action@master
with:
inputs: ${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.GIT_TAG }}
images: ${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.GIT_TAG }}-amd64,${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.GIT_TAG }}-arm64v8
push: true
- name: Create and push manifest for ${{ matrix.job.image_name }}:latest
uses: Noelware/docker-manifest-action@master
with:
inputs: ${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.LATEST_TAG }}
images: ${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.LATEST_TAG }}-amd64,${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.LATEST_TAG }}-arm64v8
push: true
- name: Logout from Docker Hub
if: always()
run: docker logout
admin_frontend_image:
runs-on: ubuntu-22.04
env:
IMAGE_NAME: ${{ secrets.DOCKER_HUB_USERNAME }}/admin_frontend
strategy:
fail-fast: false
matrix:
job:
- { name: "amd64", docker_platform: "linux/amd64" }
- { name: "arm64v8", docker_platform: "linux/arm64" }
steps:
- name: Check out the repository
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Get git tag
id: vars
run: |
T=${GITHUB_REF#refs/*/} # Remove "refs/*/" prefix from GITHUB_REF
echo "GIT_TAG=$T" >> $GITHUB_ENV
- name: Extract metadata
id: meta
uses: docker/metadata-action@v4
with:
images: registry.hub.docker.com/${{ env.IMAGE_NAME }}
- name: Build and push ${{ matrix.job.image_name }}:${{ env.GIT_TAG }}
uses: docker/build-push-action@v5
with:
platforms: ${{ matrix.job.docker_platform }}
file: ./admin_frontend/Dockerfile
push: true
tags: |
${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}-${{ matrix.job.name }}
${{ env.IMAGE_NAME }}:${{ env.GIT_TAG }}-${{ matrix.job.name }}
labels: ${{ steps.meta.outputs.labels }}
provenance: false
- name: Logout from Docker Hub
if: always()
run: docker logout
admin_frontend_docker_manifest:
runs-on: ubuntu-22.04
needs: [ admin_frontend_image ]
strategy:
fail-fast: false
matrix:
job:
- { image_name: "admin_frontend" }
steps:
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Get git tag
id: vars
run: |
T=${GITHUB_REF#refs/*/} # Remove "refs/*/" prefix from GITHUB_REF
echo "GIT_TAG=$T" >> $GITHUB_ENV
- name: Create and push manifest for ${{ matrix.job.image_name }}:version
uses: Noelware/docker-manifest-action@master
with:
inputs: ${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.GIT_TAG }}
images: ${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.GIT_TAG }}-amd64,${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.GIT_TAG }}-arm64v8
push: true
- name: Create and push manifest for ${{ matrix.job.image_name }}:latest
uses: Noelware/docker-manifest-action@master
with:
inputs: ${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.LATEST_TAG }}
images: ${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.LATEST_TAG }}-amd64,${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.LATEST_TAG }}-arm64v8
push: true
- name: Logout from Docker Hub
if: always()
run: docker logout
appflowy_worker_image:
runs-on: ubuntu-22.04
env:
IMAGE_NAME: ${{ secrets.DOCKER_HUB_USERNAME }}/appflowy_worker
strategy:
fail-fast: false
matrix:
job:
- { name: "amd64", docker_platform: "linux/amd64" }
- { name: "arm64v8", docker_platform: "linux/arm64" }
steps:
- name: Check out the repository
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Get git tag
id: vars
run: |
T=${GITHUB_REF#refs/*/} # Remove "refs/*/" prefix from GITHUB_REF
echo "GIT_TAG=$T" >> $GITHUB_ENV
- name: Extract metadata
id: meta
uses: docker/metadata-action@v4
with:
images: registry.hub.docker.com/${{ env.IMAGE_NAME }}
- name: Build and push ${{ matrix.job.image_name }}:${{ env.GIT_TAG }}
uses: docker/build-push-action@v5
with:
platforms: ${{ matrix.job.docker_platform }}
file: ./services/appflowy-worker/Dockerfile
push: true
tags: |
${{ env.IMAGE_NAME }}:${{ env.LATEST_TAG }}-${{ matrix.job.name }}
${{ env.IMAGE_NAME }}:${{ env.GIT_TAG }}-${{ matrix.job.name }}
labels: ${{ steps.meta.outputs.labels }}
provenance: false
- name: Logout from Docker Hub
if: always()
run: docker logout
appflowy_worker_manifest:
runs-on: ubuntu-22.04
needs: [ appflowy_worker_image ]
strategy:
fail-fast: false
matrix:
job:
- { image_name: "appflowy_worker" }
steps:
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Get git tag
id: vars
run: |
T=${GITHUB_REF#refs/*/} # Remove "refs/*/" prefix from GITHUB_REF
echo "GIT_TAG=$T" >> $GITHUB_ENV
- name: Create and push manifest for ${{ matrix.job.image_name }}:version
uses: Noelware/docker-manifest-action@master
with:
inputs: ${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.GIT_TAG }}
images: ${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.GIT_TAG }}-amd64,${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.GIT_TAG }}-arm64v8
push: true
- name: Create and push manifest for ${{ matrix.job.image_name }}:latest
uses: Noelware/docker-manifest-action@master
with:
inputs: ${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.LATEST_TAG }}
images: ${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.LATEST_TAG }}-amd64,${{ secrets.DOCKER_HUB_USERNAME }}/${{ matrix.job.image_name }}:${{ env.LATEST_TAG }}-arm64v8
push: true
- name: Logout from Docker Hub
if: always()
run: docker logout