Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cli - gitlab ci extension #30

Open
ups216 opened this issue Jul 13, 2022 · 3 comments
Open

cli - gitlab ci extension #30

ups216 opened this issue Jul 13, 2022 · 3 comments
Assignees
Labels

Comments

@ups216
Copy link
Contributor

ups216 commented Jul 13, 2022

allow user to trigger a smartide-cli task to create a remote workspace, this is useful when you want deploy a dev/test environment with a specific codebase version.

here is a gitlab-smartide-cli-ci.yml sample

stages:
    - smartide

smartide_start:
    stage: dev-env-start
    image: registry.cn-hangzhou.aliyuncs.com/smartide/smartide-cli
    script:
        - smartide start --mode=server --host <address-ip> --username <ssh-user> --password <ssh-password> <git-url>

consider pass in the following parameters:

  • host-address
  • username
  • password
  • git-url: support https/ssh
  • git-branch-name: actually a git-ref, so you can use commit-id, tag, or branch
  • callback-api-address: smartide-cli is able to send back a json with all data about the workspace. We can print the json content into pipeline logs for now, and publish a sample json body, this allow others to create such a api-endpoint to receive the json and do whatever they want, e.g. show it on a webpage.

post a blog to https://smartide.cn/zh/blog/
and a video to https://space.bilibili.com/1001970523

@zhouwenyang
Copy link
Contributor

zhouwenyang commented Jul 20, 2022

@ups216 we are supporting gitlab ci from the image version of smartide-cli:4475, now user can develop/debug code in real test enviroment.

.gitlab-ci.yml demo :

stages:
    - setup_dev_env

smartide:
    stage: setup_dev_env
    image: 
        name: registry.cn-hangzhou.aliyuncs.com/smartide/smartide-cli:4475
        entrypoint: [""]
    script:
        - smartide version
        - smartide start --mode pipeline --host <your dev/test env> --username <username> --password <password> --callback-api-address <callback api address>  <git repo address>

CI Logs Demo :

  • user can trigger callback api and get result from gitlab pipeline logs.
  • user can get WebIDE address, open it directly from logs and start to develop and debug.
2022-07-20 09:30:53.613 INFO  [Worksapce] Saved successfully. Open your Workspace using WorkspaceId (smartide start 1) to quickly resume your work.
2022-07-20 09:30:54.589 INFO  successfully send workspace info to below API: ****************
2022-07-20 09:30:54.589 INFO  dev/test enviroment start success with pipeline mode, you can work with below URL now!
2022-07-20 09:30:54.589 INFO  http://********:6800/?folder=vscode-remote://******/home/project

@ups216
Copy link
Contributor Author

ups216 commented Jul 20, 2022

@ups216 we are supporting gitlab ci now.

.gitlab-ci.yml demo :

stages:
    - setup_dev_env

smartide:
    stage: setup_dev_env
    image: 
        name: registry.cn-hangzhou.aliyuncs.com/smartide/smartide-cli:4475
        entrypoint: [""]
    script:
        - smartide version
        - smartide start --mode pipeline --host <your dev/test env> --username <username> --password <password> --callback-api-address <callback api address>  https://gitee.com/idcf-boat-house/boathouse-calculator.git

CI Logs Demo :

Can you use env-variable to replace the repo address to make this more general?

@zhouwenyang
Copy link
Contributor

zhouwenyang commented Jul 20, 2022

@ups216 we are supporting gitlab ci now.
.gitlab-ci.yml demo :

stages:
    - setup_dev_env

smartide:
    stage: setup_dev_env
    image: 
        name: registry.cn-hangzhou.aliyuncs.com/smartide/smartide-cli:4475
        entrypoint: [""]
    script:
        - smartide version
        - smartide start --mode pipeline --host <your dev/test env> --username <username> --password <password> --callback-api-address <callback api address>  https://gitee.com/idcf-boat-house/boathouse-calculator.git

CI Logs Demo :

Can you use env-variable to replace the repo address to make this more general?

@ups216 sure, check the new gitlab ci demo below.

variables:
  #remote host information which you can deploy your dev workspace and open it in WebIDE
  SMARTIDE_REMOTE_HOST: <remote dev/test env>
  SMARTIDE_REMOTE_HOST_USERNAME: <host username>
  SMARTIDE_REMOTE_HOST_PASSWORD: <host password>
  #git repo you want to develop in smartide,  you can use predefined variable  $CI_REPOSITORY_URL 
  #for the URL to clone the current Git repository (the URL already contain token, so you dont need to 
  #consider Authentication problem, for custom git repo url, you need resolve authentication yourself with token or ssh..)
  SMARTIDE_GIT_REPO_ADDRESS: $CI_REPOSITORY_URL
  #callback api address which you want to receive workspace information and trigger other custom events
  SMARTIDE_CALLBACK_API_ADDRESS: <callback api address>

stages:
    - setup_dev_env

smartide:
    stage: setup_dev_env
    image: 
        name: registry.cn-hangzhou.aliyuncs.com/smartide/smartide-cli:4475
        entrypoint: [""]
    script:
        - smartide version
        - smartide start --mode pipeline --isInsightDisabled false --host $SMARTIDE_REMOTE_HOST --username $SMARTIDE_REMOTE_HOST_USERNAME --password $SMARTIDE_REMOTE_HOST_PASSWORD --callback-api-address $SMARTIDE_CALLBACK_API_ADDRESS $SMARTIDE_GIT_REPO_ADDRESS

@zhouwenyang zhouwenyang added duplicate This issue or pull request already exists pipeline and removed duplicate This issue or pull request already exists labels Jul 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants