name: Publish on: push: branches: - main jobs: build-push: name: Test, build, and push image runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version-file: go.mod - name: Check formatting run: | files="$(gofmt -l .)" if [ -n "$files" ]; then echo "The following files need gofmt:" echo "$files" exit 1 fi - name: Vet run: go vet ./... - name: Test run: go test ./... - name: Read version run: | version="$(tr -d '[:space:]' < VERSION)" if [ -z "$version" ]; then echo "VERSION file is empty" exit 1 fi echo "VERSION=$version" >> "$GITHUB_ENV" echo "IMAGE=k3crpi.jumpingcrab.com:5000/sabisan:$version" >> "$GITHUB_ENV" - name: Log in to registry run: | echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login k3crpi.jumpingcrab.com \ --username "${{ secrets.REGISTRY_USERNAME }}" \ --password-stdin - name: Build image run: docker build --pull --tag "$IMAGE" . - name: Push image run: docker push "$IMAGE"