when: - event: push branch: main steps: build: image: golang:1.24 environment: CGO_ENABLED: 0 GOOS: linux GOARCH: amd64 commands: - mkdir -p ./tmp - go get - echo "Building project version $(grep 'version =' main.go | cut -d'"' -f2)" - go build -o ./tmp/learndrone ./main.go docker-build: image: docker:23 volumes: - /var/run/docker.sock:/var/run/docker.sock - /containers/learndrone:/containers/learndrone commands: - VERSION=$(grep 'version =' main.go | cut -d'"' -f2) - echo "Packing Docker image version $VERSION" - docker build -t learndrone:$VERSION -t learndrone:latest . - docker save learndrone:latest -o /containers/learndrone/learndrone_latest.tar deploy: image: docker:23 volumes: - /var/run/docker.sock:/var/run/docker.sock - /containers/learndrone:/containers/learndrone commands: - docker load -i /containers/learndrone/learndrone_latest.tar - rm /containers/learndrone/learndrone_latest.tar - docker-compose down - docker-compose up -d