Here is preview of how it looks on GitHub
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?
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"
})