Вот предварительный просмотр того, как это выглядит на GitHub
Вот как я создаю развертывания:
;(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.info(err)
process.exit(1)
}
})()
Промежуточное развертывание было создано Now. Развертывание QA было создано с использованием моего кода. Что мне не хватает?
Я пропустил environment_url
в 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"
})