################################################################################
# my118/5
################################################################################

kind: pipeline
type: docker
name: (dev) build form and push to artifactory
clone:
  depth: 1
steps:
  - name: build golang app admin and user
    image: docker-mirror.ravanertebat.ir/hub/golang:1.24
    environment:
      GOOS: linux
      GOARCH: amd64
      CGO_ENABLED: 0
      GOPROXY: "https://mirror.ravanertebat.ir/repository/golang-proxy,direct"
      GOSUMDB: "sum.golang.org https://mirror.ravanertebat.ir/repository/golang-sum-proxy"
      # GOINSECURE: "10.64.16.1"
      # GOPRIVATE: "10.64.16.1"
    settings:
      debug: true
    commands:
      - |
        set -e
        case "$DRONE_BRANCH" in 
          main)      echo prod;; 
          uat)  echo uat;; 
          dev) echo dev;; 
          *)            echo dev;; 
        esac > .environment
      - echo "Branch ${DRONE_BRANCH}, Environment $(cat .environment)"
      - APP_VERSION=$(cat .environment)-${DRONE_BUILD_NUMBER}
      - echo "APP Version tags $APP_VERSION"
      - echo -n "$APP_VERSION" >> .tags
      - mkdir -p ./artifacts/go/bin ./artifacts/go/config
      - go env
      - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./artifacts/go/bin/web ./cmd/web/main.go
      - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./artifacts/go/bin/scraper ./cmd/scraper/main.go
      - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./artifacts/go/bin/worker ./cmd/worker/main.go
      - cp -r ./cmd/web/docs ./artifacts/go/bin/docs
      - cp -r ./cmd/web/assets ./artifacts/go/bin/assets 
      - ls -ltrh ./artifacts/go/bin/

  - name: push scraper
    image: plugins/docker
    settings:
      debug: true
      username: cicd
      password:
        from_secret: REGISTRY_PASSWORD
      repo: artifactory.ravanertebat.ir/tm/scraper
      registry: artifactory.ravanertebat.ir
      dockerfile: ./cmd/scraper/Dockerfile

  - name: push web
    image: plugins/docker
    settings:
      debug: true
      username: cicd
      password:
        from_secret: REGISTRY_PASSWORD
      repo: artifactory.ravanertebat.ir/tm/web
      registry: artifactory.ravanertebat.ir
      dockerfile: ./cmd/web/Dockerfile
      # context: ./cmd/web

  - name: push worker
    image: plugins/docker
    settings:
      debug: true
      username: cicd
      password:
        from_secret: REGISTRY_PASSWORD
      repo: artifactory.ravanertebat.ir/tm/worker
      registry: artifactory.ravanertebat.ir
      dockerfile: ./cmd/worker/Dockerfile
node:
  tag: aecde-docker-runner
trigger:
  branch:
    - main
    - uat
    - develop
  event:
    - promote
    - custom
