Search code examples
githubgithub-api

Why "View Deployment" button is not showing up for "qa" section


Here is preview of how it looks on GitHub enter image description here

Here is how I create deployments:

;(async () => {
  const repo = await octokit.repos.get({
    owner: process.env.CIRCLE_PROJECT_USERNAME,
    repo: process.env.CIRCLE_PROJECT_REPONAME
  })

  const targetUrl = buildTargetUrl(
    repo.data.id,
    process.env.CIRCLE_BUILD_NUM,
    process.env.CIRCLE_WORKING_DIRECTORY.replace("~", process.env.HOME)
  )

  try {
    const deployment = await octokit.repos.createDeployment({
      environment: "qa",
      owner: process.env.CIRCLE_PROJECT_USERNAME,
      repo: process.env.CIRCLE_PROJECT_REPONAME,
      ref: process.env.CIRCLE_SHA1,
      required_contexts: [],
      task: "deploy"
    })

    await octokit.repos.createDeploymentStatus({
      deployment_id: deployment.data.id,
      environment: "staging",
      owner: process.env.CIRCLE_PROJECT_USERNAME,
      repo: process.env.CIRCLE_PROJECT_REPONAME,
      target_url: targetUrl,
      log_url: targetUrl,
      description: "Deployment has completed",
      state: "success"
    })
  } catch (err) {
    console.log(err)
    process.exit(1)
  }
})()

Staging deployment was created by Now. QA deployment was created using mine code. What I'm missing?


Solution

  • I was missing environment_url in createDeploymentStatus:

    await octokit.repos.createDeploymentStatus({
      deployment_id: deployment.data.id,
      environment: "staging",
      environment_url: targetUrl,
      owner: process.env.CIRCLE_PROJECT_USERNAME,
      repo: process.env.CIRCLE_PROJECT_REPONAME,
      target_url: targetUrl,
      log_url: targetUrl,
      state: "success"
    })