workspace:
  base: /drone
  path: src/github.com/goharbor/harbor

clone:
  git:
    image: plugins/git
    tags: true
    recursive: false

pipeline:
  check-org-membership:
    image: 'wdc-harbor-ci.eng.vmware.com/default-project/vic-integration-test:1.44'
    pull: true
    environment:
      BIN: bin
      GOPATH: /go
      SHELL: /bin/bash
    secrets:
      - github_automation_api_key
      - skip_check_membership
    commands:
      - echo ${DRONE_COMMIT_AUTHOR}
      - echo $SKIP_CHECK_MEMBERSHIP
      - if [ "$SKIP_CHECK_MEMBERSHIP" = "true" ]; then echo 'check-org-membership step skipped'; else /bin/bash -c '[[ ! $(curl --silent "https://api.github.com/orgs/vmware/members/${DRONE_COMMIT_AUTHOR}?access_token=$GITHUB_AUTOMATION_API_KEY") ]]'; fi
    when:
      status: success

  test-and-issue-build:
    image: goharbor/harbor-e2e-engine:1.42
    pull: true
    privileged: true
    environment:
      BIN: bin
      GOPATH: /drone
      SHELL: /bin/bash
      TERM: xterm
      LOG_TEMP_DIR: install-logs
    secrets:
      - ci_domain
      - drone_server
      - drone_token
      - drone_token_inte
      - github_automation_api_key
      - gs_client_email
      - gs_private_key
      - gs_project_id
      - harbor_admin
      - harbor_password
      - mail_pwd
      - npm_password
      - npm_username
      - docker_hub_username
      - docker_hub_password
      - npm_registry
    commands:
      - export DOMAIN=${CI_DOMAIN}
      - export HOST_CONTAINER_ID=$(hostname)
      - echo $HOST_CONTAINER_ID
      - tests/integration.sh
    when:
      status: success

  notify-slack:
    image: plugins/slack
    secrets:
      - source: slack_url
        target: slack_webhook
    username: drone
    template: >
      build https://ci-vic.vmware.com/goharbor/harbor/{{ build.number }} finished with a {{ build.status }} status. Please find logs at https://storage.googleapis.com/harbor-ci-logs/integration_logs_{{ build.number }}_{{ build.commit }}.tar.gz
    when:
      repo: goharbor/harbor
      event: [push, tag, deployment]
      branch: [ master, release-*, refs/tags/* ]
      status: [ failure, success ]
