fix: deploy test before push docker image

pull/2293/head
Bloomingg 1 year ago
parent 5ba5402bee
commit 5cef418167

@ -21,6 +21,11 @@ on:
- release-* - release-*
tags: tags:
- v* - v*
pull_request:
types: [closed]
branches:
- main
- release-*
workflow_dispatch: workflow_dispatch:
env: env:
@ -28,110 +33,72 @@ env:
GO_VERSION: "1.20" GO_VERSION: "1.20"
jobs: jobs:
build-dockerhub: build-and-push:
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action == 'closed' && github.event.pull_request.merged == true)
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action == 'closed' && github.event.pull_request.merged == true)
steps: steps:
- name: Checkout - name: Checkout main repository
uses: actions/checkout@v4 uses: actions/checkout@v4
with:
path: main-repo
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v3 uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v3
# docker.io/openim/openim-server:latest
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5.5.1
with:
images: openim/openim-server
# generate Docker tags based on the following events/attributes
tags: |
type=ref,event=tag
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern=v{{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image - name: Build and push Docker image
uses: docker/build-push-action@v5 uses: docker/build-push-action@v5
with: with:
context: . context: ./main-repo
# linux/ppc64le,linux/s390x load: true
platforms: linux/amd64,linux/arm64 tags: 'openim/openim-server:local'
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-aliyun: - name: Checkout compose repository
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
# registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-server:latest
- name: Extract metadata (tags, labels) for Docker
id: meta2
uses: docker/metadata-action@v5.5.1
with: with:
images: registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-server repository: 'openimsdk/openim-docker'
# generate Docker tags based on the following events/attributes path: 'compose-repo'
tags: |
type=ref,event=tag
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern=v{{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
- name: Log in to AliYun Docker Hub - name: Update .env to use the local image
uses: docker/login-action@v3 run: |
with: sed -i 's|OPENIM_SERVER_IMAGE=.*|OPENIM_SERVER_IMAGE=openim/openim-server:local|' ${{ github.workspace }}/compose-repo/.env
registry: registry.cn-hangzhou.aliyuncs.com
username: ${{ secrets.ALIREGISTRY_USERNAME }}
password: ${{ secrets.ALIREGISTRY_TOKEN }}
- name: Build and push Docker image - name: Start services using Docker Compose
uses: docker/build-push-action@v5 run: |
with: cd ${{ github.workspace }}/compose-repo
context: . docker compose up -d
# linux/ppc64le,linux/s390x sleep 30
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }} - name: Check openim-server health
tags: ${{ steps.meta2.outputs.tags }} run: |
labels: ${{ steps.meta2.outputs.labels }} docker ps
docker exec openim-server mage check
status=$?
if [ $status -ne 0 ]; then
echo "Health check failed"
exit 1
fi
- name: Check openim-chat health
if: success()
run: |
docker exec openim-chat mage check
status=$?
if [ $status -ne 0 ]; then
echo "Health check failed"
exit 1
fi
build-ghcr:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
# ghcr.io/openimsdk/openim-server:latest
- name: Extract metadata (tags, labels) for Docker - name: Extract metadata (tags, labels) for Docker
id: meta3 if: success()
id: meta
uses: docker/metadata-action@v5.5.1 uses: docker/metadata-action@v5.5.1
with: with:
images: ghcr.io/openimsdk/openim-server images: |
openim/openim-server
ghcr.io/openimsdk/openim-server
registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-server
# generate Docker tags based on the following events/attributes # generate Docker tags based on the following events/attributes
tags: | tags: |
type=ref,event=tag type=ref,event=tag
@ -144,19 +111,32 @@ jobs:
type=semver,pattern={{major}} type=semver,pattern={{major}}
type=sha type=sha
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Log in to GitHub Container Registry - name: Log in to GitHub Container Registry
uses: docker/login-action@v3 uses: docker/login-action@v2
with: with:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- name: Log in to Aliyun Container Registry
uses: docker/login-action@v2
with:
registry: registry.cn-hangzhou.aliyuncs.com
username: ${{ secrets.ALIREGISTRY_USERNAME }}
password: ${{ secrets.ALIREGISTRY_TOKEN }}
- name: Build and push Docker image - name: Build and push Docker image
uses: docker/build-push-action@v5 uses: docker/build-push-action@v5
with: with:
context: . context: ./main-repo
push: true
# linux/ppc64le,linux/s390x # linux/ppc64le,linux/s390x
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }}
tags: ${{ steps.meta3.outputs.tags }} labels: ${{ steps.meta.outputs.labels }}
labels: ${{ steps.meta3.outputs.labels }}

Loading…
Cancel
Save