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}} RELEASE_TAG=${{RELEASE_TAG}} clean binary${{EXT:}}
    cat > config.json << EOF
    {
      "storage":{
          "rootDirectory":"/var/lib/registry"
      },
      "http":{
          "address":"0.0.0.0",
          "port":"5000"
      },
      "log":{
          "level":"debug"
      }
    }
    EOF

    cat config.json
    mkdir -p /zotcopy/.build/${{REPO_NAME}}
    cd /zotcopy/.build/${{REPO_NAME}}

    mkdir -p binary/ cert/ config/

    cp /go/src/github.com/project-zot/zot/bin/zot-${{OS}}-${{ARCH}}${{EXT:}} binary/
    cp /go/src/github.com/project-zot/zot/config.json config/
    cp /etc/ssl/certs/ca-certificates.crt cert/
  build_only: true

"${{REPO_NAME:zot}}":
  annotations:
    org.opencontainers.image.description: "OCI-native container image/artifact registry (purely based on OCI Distribution Specification)"
  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}}/cert
      dest: /etc/ssl/certs
    - source: ../.build/${{REPO_NAME}}/config
      dest: /etc/zot
  entrypoint:
    - /usr/local/bin/zot-${{OS}}-${{ARCH}}${{EXT:}}
  cmd:
    - serve
    - /etc/zot/config.json
