mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-11-04 11:22:10 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			320 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			320 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
# Copyright © 2023 OpenIM open source community. All rights reserved.
 | 
						|
#
 | 
						|
# Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
# you may not use this file except in compliance with the License.
 | 
						|
# You may obtain a copy of the License at
 | 
						|
#
 | 
						|
#     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
#
 | 
						|
# Unless required by applicable law or agreed to in writing, software
 | 
						|
# distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
# See the License for the specific language governing permissions and
 | 
						|
# limitations under the License.
 | 
						|
 | 
						|
name: Docker Buildx Images CI
 | 
						|
 | 
						|
on:
 | 
						|
  schedule:
 | 
						|
  - cron: '30 1 * * *'
 | 
						|
  push:
 | 
						|
    branches:
 | 
						|
      - release-*
 | 
						|
    tags:
 | 
						|
      - v*
 | 
						|
  workflow_dispatch:
 | 
						|
 | 
						|
jobs:
 | 
						|
  build-ghcr:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v3
 | 
						|
        
 | 
						|
      - name: Set up QEMU
 | 
						|
        uses: docker/setup-qemu-action@v2
 | 
						|
        
 | 
						|
      - name: Set up Docker Buildx
 | 
						|
        uses: docker/setup-buildx-action@v2
 | 
						|
        with:
 | 
						|
          install: true
 | 
						|
 | 
						|
      - name: Cache Docker layers
 | 
						|
        uses: actions/cache@v3
 | 
						|
        with:
 | 
						|
          path: /tmp/.buildx-cache
 | 
						|
          key: ${{ runner.os }}-buildx-${{ github.sha }}
 | 
						|
          restore-keys: |
 | 
						|
            ${{ runner.os }}-buildx-
 | 
						|
 | 
						|
      - name: Log in to GitHub Container Registry
 | 
						|
        uses: docker/login-action@v2
 | 
						|
        with:
 | 
						|
          registry: ghcr.io
 | 
						|
          username: ${{ github.repository_owner }}
 | 
						|
          password: ${{ secrets.GITHUB_TOKEN }}
 | 
						|
 | 
						|
################################################
 | 
						|
# build/
 | 
						|
# └── docker
 | 
						|
#     ├── openim-api
 | 
						|
#     │   └── Dockerfile
 | 
						|
#     ├── openim-cmdutils
 | 
						|
#     │   └── Dockerfile
 | 
						|
#     ├── openim-crontask
 | 
						|
#     │   └── Dockerfile
 | 
						|
#     ├── openim-msggateway
 | 
						|
#     │   └── Dockerfile
 | 
						|
#     ├── openim-msgtransfer
 | 
						|
#     │   └── Dockerfile
 | 
						|
#     ├── openim-push
 | 
						|
#     │   └── Dockerfile
 | 
						|
#     ├── openim-rpc-auth
 | 
						|
#     │   └── Dockerfile
 | 
						|
#     ├── openim-rpc-conversation
 | 
						|
#     │   └── Dockerfile
 | 
						|
#     ├── openim-rpc-friend
 | 
						|
#     │   └── Dockerfile
 | 
						|
#     ├── openim-rpc-group
 | 
						|
#     │   └── Dockerfile
 | 
						|
#     ├── openim-rpc-msg
 | 
						|
#     │   └── Dockerfile
 | 
						|
#     ├── openim-rpc-third
 | 
						|
#     │   └── Dockerfile
 | 
						|
#     └── openim-rpc-user
 | 
						|
#         └── Dockerfile
 | 
						|
#############################################
 | 
						|
 | 
						|
      - name: Extract metadata (tags, labels) for Docker openim-api
 | 
						|
        id: meta1
 | 
						|
        uses: docker/metadata-action@v4.6.0
 | 
						|
        with:
 | 
						|
          images: ghcr.io/openimsdk/openim-api
 | 
						|
 | 
						|
      - name: Build and push Docker image for openim-api
 | 
						|
        uses: docker/build-push-action@v4
 | 
						|
        with:
 | 
						|
          context: .
 | 
						|
          file: ./build/images/openim-api/Dockerfile
 | 
						|
          platforms: linux/amd64,linux/arm64
 | 
						|
          push: ${{ github.event_name != 'pull_request' }}
 | 
						|
          tags: ${{ steps.meta1.outputs.tags }}
 | 
						|
          labels: ${{ steps.meta1.outputs.labels }}
 | 
						|
          cache-from: type=local,src=/tmp/.buildx-cache
 | 
						|
          cache-to: type=local,dest=/tmp/.buildx-cache
 | 
						|
 | 
						|
      - name: Extract metadata (tags, labels) for Docker openim-cmdutils
 | 
						|
        id: meta2
 | 
						|
        uses: docker/metadata-action@v4.6.0
 | 
						|
        with:
 | 
						|
          images: ghcr.io/openimsdk/openim-cmdutils
 | 
						|
 | 
						|
      - name: Build and push Docker image for openim-cmdutils
 | 
						|
        uses: docker/build-push-action@v4
 | 
						|
        with:
 | 
						|
          context: .
 | 
						|
          file: ./build/images/openim-cmdutils/Dockerfile
 | 
						|
          platforms: linux/amd64,linux/arm64
 | 
						|
          push: ${{ github.event_name != 'pull_request' }}
 | 
						|
          tags: ${{ steps.meta2.outputs.tags }}
 | 
						|
          labels: ${{ steps.meta2.outputs.labels }}
 | 
						|
          cache-from: type=local,src=/tmp/.buildx-cache
 | 
						|
          cache-to: type=local,dest=/tmp/.buildx-cache
 | 
						|
 | 
						|
      - name: Extract metadata (tags, labels) for Docker openim-crontask
 | 
						|
        id: meta3
 | 
						|
        uses: docker/metadata-action@v4.6.0
 | 
						|
        with:
 | 
						|
          images: ghcr.io/openimsdk/openim-crontask
 | 
						|
 | 
						|
      - name: Build and push Docker image for openim-crontask
 | 
						|
        uses: docker/build-push-action@v4
 | 
						|
        with:
 | 
						|
          context: .
 | 
						|
          file: ./build/images/openim-crontask/Dockerfile
 | 
						|
          platforms: linux/amd64,linux/arm64
 | 
						|
          push: ${{ github.event_name != 'pull_request' }}
 | 
						|
          tags: ${{ steps.meta3.outputs.tags }}
 | 
						|
          labels: ${{ steps.meta3.outputs.labels }}
 | 
						|
          cache-from: type=local,src=/tmp/.buildx-cache
 | 
						|
          cache-to: type=local,dest=/tmp/.buildx-cache
 | 
						|
 | 
						|
      - name: Extract metadata (tags, labels) for Docker openim-msggateway
 | 
						|
        id: meta4
 | 
						|
        uses: docker/metadata-action@v4.6.0
 | 
						|
        with:
 | 
						|
          images: ghcr.io/openimsdk/openim-msggateway
 | 
						|
 | 
						|
      - name: Build and push Docker image for openim-msggateway
 | 
						|
        uses: docker/build-push-action@v4
 | 
						|
        with:
 | 
						|
          context: .
 | 
						|
          file: ./build/images/openim-msggateway/Dockerfile
 | 
						|
          platforms: linux/amd64,linux/arm64
 | 
						|
          push: ${{ github.event_name != 'pull_request' }}
 | 
						|
          tags: ${{ steps.meta4.outputs.tags }}
 | 
						|
          labels: ${{ steps.meta4.outputs.labels }}
 | 
						|
          cache-from: type=local,src=/tmp/.buildx-cache
 | 
						|
          cache-to: type=local,dest=/tmp/.buildx-cache
 | 
						|
 | 
						|
      - name: Extract metadata (tags, labels) for Docker openim-msgtransfer
 | 
						|
        id: meta5
 | 
						|
        uses: docker/metadata-action@v4.6.0
 | 
						|
        with:
 | 
						|
          images: ghcr.io/openimsdk/openim-msgtransfer
 | 
						|
 | 
						|
      - name: Build and push Docker image for openim-msgtransfer
 | 
						|
        uses: docker/build-push-action@v4
 | 
						|
        with:
 | 
						|
          context: .
 | 
						|
          file: ./build/images/openim-msgtransfer/Dockerfile
 | 
						|
          platforms: linux/amd64,linux/arm64
 | 
						|
          push: ${{ github.event_name != 'pull_request' }}
 | 
						|
          tags: ${{ steps.meta5.outputs.tags }}
 | 
						|
          labels: ${{ steps.meta5.outputs.labels }}
 | 
						|
          cache-from: type=local,src=/tmp/.buildx-cache
 | 
						|
          cache-to: type=local,dest=/tmp/.buildx-cache
 | 
						|
          
 | 
						|
      - name: Extract metadata (tags, labels) for Docker openim-push
 | 
						|
        id: meta6
 | 
						|
        uses: docker/metadata-action@v4.6.0
 | 
						|
        with:
 | 
						|
          images: ghcr.io/openimsdk/openim-push
 | 
						|
 | 
						|
      - name: Build and push Docker image for openim-push
 | 
						|
        uses: docker/build-push-action@v4
 | 
						|
        with:
 | 
						|
          context: .
 | 
						|
          file: ./build/images/openim-push/Dockerfile
 | 
						|
          platforms: linux/amd64,linux/arm64
 | 
						|
          push: ${{ github.event_name != 'pull_request' }}
 | 
						|
          tags: ${{ steps.meta6.outputs.tags }}
 | 
						|
          labels: ${{ steps.meta6.outputs.labels }}
 | 
						|
          cache-from: type=local,src=/tmp/.buildx-cache
 | 
						|
          cache-to: type=local,dest=/tmp/.buildx-cache
 | 
						|
 | 
						|
      - name: Extract metadata (tags, labels) for Docker openim-rpc-auth
 | 
						|
        id: meta7
 | 
						|
        uses: docker/metadata-action@v4.6.0
 | 
						|
        with:
 | 
						|
          images: ghcr.io/openimsdk/openim-rpc-auth
 | 
						|
 | 
						|
      - name: Build and push Docker image for openim-rpc-auth
 | 
						|
        uses: docker/build-push-action@v4
 | 
						|
        with:
 | 
						|
          context: .
 | 
						|
          file: ./build/images/openim-rpc-auth/Dockerfile
 | 
						|
          platforms: linux/amd64,linux/arm64
 | 
						|
          push: ${{ github.event_name != 'pull_request' }}
 | 
						|
          tags: ${{ steps.meta7.outputs.tags }}
 | 
						|
          labels: ${{ steps.meta7.outputs.labels }}
 | 
						|
          cache-from: type=local,src=/tmp/.buildx-cache
 | 
						|
          cache-to: type=local,dest=/tmp/.buildx-cache
 | 
						|
 | 
						|
      - name: Extract metadata (tags, labels) for Docker openim-rpc-conversation
 | 
						|
        id: meta8
 | 
						|
        uses: docker/metadata-action@v4.6.0
 | 
						|
        with:
 | 
						|
          images: ghcr.io/openimsdk/openim-rpc-conversation
 | 
						|
 | 
						|
      - name: Build and push Docker image for openim-rpc-conversation
 | 
						|
        uses: docker/build-push-action@v4
 | 
						|
        with:
 | 
						|
          context: .
 | 
						|
          file: ./build/images/openim-rpc-conversation/Dockerfile
 | 
						|
          platforms: linux/amd64,linux/arm64
 | 
						|
          push: ${{ github.event_name != 'pull_request' }}
 | 
						|
          tags: ${{ steps.meta8.outputs.tags }}
 | 
						|
          labels: ${{ steps.meta8.outputs.labels }}
 | 
						|
          cache-from: type=local,src=/tmp/.buildx-cache
 | 
						|
          cache-to: type=local,dest=/tmp/.buildx-cache
 | 
						|
 | 
						|
      - name: Extract metadata (tags, labels) for Docker openim-rpc-friend
 | 
						|
        id: meta9
 | 
						|
        uses: docker/metadata-action@v4.6.0
 | 
						|
        with:
 | 
						|
          images: ghcr.io/openimsdk/openim-rpc-friend
 | 
						|
 | 
						|
      - name: Build and push Docker image for openim-rpc-friend
 | 
						|
        uses: docker/build-push-action@v4
 | 
						|
        with:
 | 
						|
          context: .
 | 
						|
          file: ./build/images/openim-rpc-friend/Dockerfile
 | 
						|
          platforms: linux/amd64,linux/arm64
 | 
						|
          push: ${{ github.event_name != 'pull_request' }}
 | 
						|
          tags: ${{ steps.meta9.outputs.tags }}
 | 
						|
          labels: ${{ steps.meta9.outputs.labels }}
 | 
						|
          cache-from: type=local,src=/tmp/.buildx-cache
 | 
						|
          cache-to: type=local,dest=/tmp/.buildx-cache
 | 
						|
 | 
						|
      - name: Extract metadata (tags, labels) for Docker openim-rpc-group
 | 
						|
        id: meta10
 | 
						|
        uses: docker/metadata-action@v4.6.0
 | 
						|
        with:
 | 
						|
          images: ghcr.io/openimsdk/openim-rpc-group
 | 
						|
 | 
						|
      - name: Build and push Docker image for openim-rpc-group
 | 
						|
        uses: docker/build-push-action@v4
 | 
						|
        with:
 | 
						|
          context: .
 | 
						|
          file: ./build/images/openim-rpc-group/Dockerfile
 | 
						|
          platforms: linux/amd64,linux/arm64
 | 
						|
          push: ${{ github.event_name != 'pull_request' }}
 | 
						|
          tags: ${{ steps.meta10.outputs.tags }}
 | 
						|
          labels: ${{ steps.meta10.outputs.labels }}
 | 
						|
          cache-from: type=local,src=/tmp/.buildx-cache
 | 
						|
          cache-to: type=local,dest=/tmp/.buildx-cache
 | 
						|
 | 
						|
      - name: Extract metadata (tags, labels) for Docker openim-rpc-msg
 | 
						|
        id: meta11
 | 
						|
        uses: docker/metadata-action@v4.6.0
 | 
						|
        with:
 | 
						|
          images: ghcr.io/openimsdk/openim-rpc-msg
 | 
						|
 | 
						|
      - name: Build and push Docker image for openim-rpc-msg
 | 
						|
        uses: docker/build-push-action@v4
 | 
						|
        with:
 | 
						|
          context: .
 | 
						|
          file: ./build/images/openim-rpc-msg/Dockerfile
 | 
						|
          platforms: linux/amd64,linux/arm64
 | 
						|
          push: ${{ github.event_name != 'pull_request' }}
 | 
						|
          tags: ${{ steps.meta11.outputs.tags }}
 | 
						|
          labels: ${{ steps.meta11.outputs.labels }}
 | 
						|
          cache-from: type=local,src=/tmp/.buildx-cache
 | 
						|
          cache-to: type=local,dest=/tmp/.buildx-cache
 | 
						|
 | 
						|
      - name: Extract metadata (tags, labels) for Docker openim-rpc-third
 | 
						|
        id: meta12
 | 
						|
        uses: docker/metadata-action@v4.6.0
 | 
						|
        with:
 | 
						|
          images: ghcr.io/openimsdk/openim-rpc-third
 | 
						|
 | 
						|
      - name: Build and push Docker image for openim-rpc-third
 | 
						|
        uses: docker/build-push-action@v4
 | 
						|
        with:
 | 
						|
          context: .
 | 
						|
          file: ./build/images/openim-rpc-third/Dockerfile
 | 
						|
          platforms: linux/amd64,linux/arm64
 | 
						|
          push: ${{ github.event_name != 'pull_request' }}
 | 
						|
          tags: ${{ steps.meta12.outputs.tags }}
 | 
						|
          labels: ${{ steps.meta12.outputs.labels }}
 | 
						|
          cache-from: type=local,src=/tmp/.buildx-cache
 | 
						|
          cache-to: type=local,dest=/tmp/.buildx-cache
 | 
						|
 | 
						|
      - name: Extract metadata (tags, labels) for Docker openim-rpc-user
 | 
						|
        id: meta13
 | 
						|
        uses: docker/metadata-action@v4.6.0
 | 
						|
        with:
 | 
						|
          images: ghcr.io/openimsdk/openim-rpc-user
 | 
						|
 | 
						|
      - name: Build and push Docker image for openim-rpc-user
 | 
						|
        uses: docker/build-push-action@v4
 | 
						|
        with:
 | 
						|
          context: .
 | 
						|
          file: ./build/images/openim-rpc-user/Dockerfile
 | 
						|
          platforms: linux/amd64,linux/arm64
 | 
						|
          push: ${{ github.event_name != 'pull_request' }}
 | 
						|
          tags: ${{ steps.meta13.outputs.tags }}
 | 
						|
          labels: ${{ steps.meta13.outputs.labels }}
 | 
						|
          cache-from: type=local,src=/tmp/.buildx-cache
 | 
						|
          cache-to: type=local,dest=/tmp/.buildx-cache |