diff options
author | Vladislav Polyakov <me@polrk.com> | 2025-02-12 21:26:57 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-12 18:26:57 +0000 |
commit | 01359b92b9e4bda1a0b686ba8335f2e33de2b0c8 (patch) | |
tree | 9687009417087428e71ede86942bad83f8965106 | |
parent | 5876eb747ad78e5d96f9624205dd9201ea05bd8a (diff) | |
download | ydb-01359b92b9e4bda1a0b686ba8335f2e33de2b0c8.tar.gz |
ci: test docker image before publishing (#14504)
-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 f10062ede69..5b6a80b8a26 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 |