diff options
-rw-r--r-- | .github/workflows/docker_publish.yml | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml index f10062ede6..5b6a80b8a2 100644 --- a/.github/workflows/docker_publish.yml +++ b/.github/workflows/docker_publish.yml @@ -75,10 +75,9 @@ jobs: type=schedule,pattern=nightly type=raw,value=${{ inputs.image_tag || 'trunk' }} - - name: Build and push docker image + - name: Build docker image uses: docker/build-push-action@v4 with: - push: true context: . file: main/.github/docker/Dockerfile tags: ${{ steps.meta.outputs.tags }} @@ -87,3 +86,24 @@ jobs: provenance: false cache-from: type=s3,name=local_ydb,region=ru-central1,bucket=${{ vars.AWS_BUCKET }},endpoint_url=${{ vars.AWS_ENDPOINT }},access_key_id=${{ secrets.AWS_KEY_ID }},secret_access_key=${{ secrets.AWS_KEY_VALUE }} cache-to: type=s3,name=local_ydb,region=ru-central1,bucket=${{ vars.AWS_BUCKET }},endpoint_url=${{ vars.AWS_ENDPOINT }},access_key_id=${{ secrets.AWS_KEY_ID }},secret_access_key=${{ secrets.AWS_KEY_VALUE }},mode=max + + - name: Test docker image + continue-on-error: false + run: | + docker run -d --name local-ydb-test ghcr.io/${{ github.repository_owner }}/local-ydb:nightly + sleep 61 # Wait for the health check to run (--start-period=60s --interval=1s) + if [ "$(docker inspect --format='{{json .State.Health.Status}}' local-ydb-test)" != "\"healthy\"" ]; then + echo "Container is not healthy" + docker logs local-ydb-test + exit 1 + fi + docker stop local-ydb-test + docker rm local-ydb-test + + - name: Push docker image + uses: docker/build-push-action@v4 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + cache-to: type=s3,name=local_ydb,region=ru-central1,bucket=${{ vars.AWS_BUCKET }},endpoint_url=${{ vars.AWS_ENDPOINT }},access_key_id=${{ secrets.AWS_KEY_ID }},secret_access_key=${{ secrets.AWS_KEY_VALUE }},mode=max |