update deps + update build script

This commit is contained in:
Juraj Kubrican
2025-07-28 14:29:50 +02:00
parent 99573a67d1
commit 73b2e445b4
3 changed files with 31 additions and 23 deletions

View File

@@ -4,55 +4,57 @@ on:
push:
branches:
- main
# - test
jobs:
build-and-push:
runs-on: self-hosted
env:
IMAGE_NAME: ${{ github.event.repository.name }}
PORT: 54321
TEST_PORT: 54322
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Write build number
run: echo "${{ github.run_number }}" >> build_number
- name: Build Docker image
run: |
IMAGE_NAME="go-web-server"
docker build -t "$IMAGE_NAME:latest" -t "$IMAGE_NAME:${{ github.run_number }}" .
- name: Ensure no existing temp container
run: |
if [ "$(docker ps -aq -f name=temp-go-web-server)" ]; then
docker stop temp-go-web-server || true
docker rm temp-go-web-server || true
if [ "$(docker ps -aq -f name=temp-$IMAGE_NAME)" ]; then
docker stop temp-$IMAGE_NAME || true
docker rm temp-$IMAGE_NAME || true
fi
- name: Run temporary container for health check
run: |
docker run -d --name temp-go-web-server -p 54322:54321 go-web-server:latest
docker run -d --name temp-$IMAGE_NAME -p $TEST_PORT:54321 $IMAGE_NAME:latest
sleep 10 # Wait for the container to start
if curl -f http://localhost:54322/health; then
if curl -f http://localhost:$TEST_PORT/health; then
echo "Health check passed"
docker stop temp-go-web-server
docker rm temp-go-web-server
docker stop temp-$IMAGE_NAME
docker rm temp-$IMAGE_NAME
else
echo "Health check failed"
docker logs temp-go-web-server
docker stop temp-go-web-server
docker rm temp-go-web-server
docker logs temp-$IMAGE_NAME
docker stop temp-$IMAGE_NAME
docker rm temp-$IMAGE_NAME
exit 1
fi
- name: Stop and remove current container
run: |
if [ "$(docker ps -q -f name=go-web-server)" ]; then
docker stop go-web-server || true
docker rm go-web-server || true
if [ "$(docker ps -q -f name=$IMAGE_NAME)" ]; then
docker stop $IMAGE_NAME || true
docker rm $IMAGE_NAME || true
fi
- name: Run new container
run: |
IMAGE_NAME="go-web-server"
docker run -d --name go-web-server -p 54321:54321 --restart=always -v "/volume2/docker/knet/data:/app/data" "$IMAGE_NAME:latest"
docker run -d --name $IMAGE_NAME -p $PORT:54321 --restart=always -v "/volume2/docker/$IMAGE_NAME/data:/app/data" "$IMAGE_NAME:latest"
- name: Cleanup
run: |
docker image prune -a -f --filter="label=$IMAGE_NAME"