build:
  from:
    type: docker
    url: docker://ghcr.io/project-zot/golang:1.25
  binds:
    - ../. -> /zotcopy
  run: |
    export GO111MODULE=on 
    export GOPATH='/go'
    export HOME='/root'
    export PATH='/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
    mkdir -p /go/src/github.com/project-zot
    cd /go/src/github.com/project-zot
    git clone /zotcopy zot
    cd /go/src/github.com/project-zot/zot
    make COMMIT=${{COMMIT}} OS=${{OS}} ARCH=${{ARCH}} clean exporter-minimal

    cat > config.json << EOF
    {
      "Server":{
          "protocol":"http",
          "host": "127.0.0.1",
          "port": "5000"
      },
      "Exporter":{
          "port":"5001",
          "log":{
            "level":"debug"
          }
      }
    }
    EOF

    cat config.json

    mkdir -p /zotcopy/.build/${{REPO_NAME}}/binary
    mkdir -p /zotcopy/.build/${{REPO_NAME}}/config
    cp /go/src/github.com/project-zot/zot/bin/zxp-${{OS}}-${{ARCH}} /zotcopy/.build/${{REPO_NAME}}/binary
    cp /go/src/github.com/project-zot/zot/config.json /zotcopy/.build/${{REPO_NAME}}/config
  build_only: true

"${{REPO_NAME:zxp}}":
  annotations:
    org.opencontainers.image.description: "a metrics exporter for zot-minimal image"
  os: ${{OS}}
  arch: ${{ARCH}}
  from:
    type: docker
    url: docker://${{BASE_IMAGE}}
  overlay_dirs:
    - source: ../.build/${{REPO_NAME}}/binary
      dest: /usr/local/bin
    - source: ../.build/${{REPO_NAME}}/config
      dest: /etc/zxp
  entrypoint:
    - /usr/local/bin/zxp-${{OS}}-${{ARCH}}
  cmd:
    - config
    - /etc/zxp/config.json
