# .cnb.yml
$:
  vscode:
    - docker:
        image: docker.cnb.cool/kevisual/dev-env:latest
      services:
        - vscode
        - docker
      imports: https://cnb.cool/kevisual/env/-/blob/main/.env.development
      # 开发环境启动后会执行的任务
      # stages:
      #   - name: pnpm install
      #     script: pnpm install

.common_sync_to_gitea: &common_sync_to_gitea
  services:
    - docker
  imports:
    - https://cnb.cool/kevisual/env/-/blob/main/.env.development
  env:
    TO_REPO: kevisual/cnb
    TO_URL: git.xiongxiao.me
  stages:
    - name: '显示 git remote'
      script: git remote -v
    - name: sync to gitea
      image: tencentcom/git-sync
      settings:
        target_url: https://${TO_URL}/${TO_REPO}.git
        auth_type: https
        username: "oauth2"
        password:  ${GITEA_TOKEN}
        git_user: "abearxiong"
        git_email: "xiongxiao@xiongxiao.me"
        sync_mode: rebase
        branch: main
.common_sync_from_gitea: &common_sync_from_gitea
  services:
    - docker
  imports:
    - https://cnb.cool/kevisual/env/-/blob/main/.env.development
  env:
    TO_REPO: kevisual/cnb
    TO_URL: git.xiongxiao.me
  stages:
    - name: '添加 gitea的origin'
      script: |
        git remote remove gitea 2>/dev/null || true
        git remote add gitea https://oauth2:${GITEA_TOKEN}@${TO_URL}/${TO_REPO}.git
    - name: '同步gitea代码到当前仓库'
      script: git pull gitea main
    - name: '提交到原本的origin'
      script: git push origin main

main:
  web_trigger_sync_to_gitea:
  - <<: *common_sync_to_gitea
  web_trigger_sync_from_gitea:
  - <<: *common_sync_from_gitea
  api_trigger_sync_to_gitea:
  - <<: *common_sync_to_gitea
  api_trigger_sync_from_gitea:
  - <<: *common_sync_from_gitea
  push:
    - docker:
        image: docker.cnb.cool/kevisual/dev-env:latest
      services:
        - vscode
        - docker
      stages:
        - name: 打包应用
          script: pnpm build
        # 同名镜像构建&推送
        - name: Docker build
          script: docker build -t ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest .
        - name: Docker push
          script: docker push ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest