fix: refresh provider gateway build context
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@unidesk/provider-gateway",
|
||||
"version": "0.2.20",
|
||||
"version": "0.2.21",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
@@ -1552,8 +1552,13 @@ function candidateGatewayName(taskId: string): string {
|
||||
|
||||
function upgradePlan(taskId: string): Record<string, JsonValue> {
|
||||
const workspace = config.upgradeWorkspacePath;
|
||||
const workspaceRoot = workspace.replace(/\/+$/, "");
|
||||
const sleepMs = 300_000;
|
||||
const validationTimeoutMs = 180_000;
|
||||
const compactBuildContextCandidates = Array.from(new Set([
|
||||
`${workspaceRoot}/.state/provider-${config.providerId}-build-context`,
|
||||
`${workspaceRoot}/.state/provider-${safeProviderSlug(config.providerId)}-build-context`,
|
||||
]));
|
||||
const composeBaseCommand = [
|
||||
"docker",
|
||||
"compose",
|
||||
@@ -1595,9 +1600,31 @@ function upgradePlan(taskId: string): Record<string, JsonValue> {
|
||||
const validationNeedleOk = `"ok":true`;
|
||||
const validationAttempts = Math.max(1, Math.ceil(validationTimeoutMs / 2000));
|
||||
const targetGatewayMetadata = readTargetGatewayMetadata(workspace);
|
||||
const compactBuildContextRefreshScript = [
|
||||
`provider_src=${shellQuote(`${workspaceRoot}/src/components/provider-gateway`)}`,
|
||||
`shared_src=${shellQuote(`${workspaceRoot}/src/components/shared`)}`,
|
||||
`for compact_context in ${compactBuildContextCandidates.map(shellQuote).join(" ")}; do`,
|
||||
` if [ -d "$compact_context" ]; then`,
|
||||
` echo "refreshing provider-gateway build context: $compact_context"`,
|
||||
` mkdir -p "$compact_context/src/components/provider-gateway" "$compact_context/src/components/shared"`,
|
||||
` rm -rf "$compact_context/src/components/provider-gateway/src" "$compact_context/src/components/provider-gateway/scripts" "$compact_context/src/components/shared/src"`,
|
||||
` cp -a "$provider_src/package.json" "$compact_context/src/components/provider-gateway/package.json"`,
|
||||
` [ ! -f "$provider_src/tsconfig.json" ] || cp -a "$provider_src/tsconfig.json" "$compact_context/src/components/provider-gateway/tsconfig.json"`,
|
||||
` [ ! -f "$provider_src/Dockerfile" ] || cp -a "$provider_src/Dockerfile" "$compact_context/src/components/provider-gateway/Dockerfile"`,
|
||||
` [ -f "$compact_context/Dockerfile" ] || cp -a "$provider_src/Dockerfile" "$compact_context/Dockerfile"`,
|
||||
` cp -a "$provider_src/src" "$compact_context/src/components/provider-gateway/src"`,
|
||||
` cp -a "$provider_src/scripts" "$compact_context/src/components/provider-gateway/scripts"`,
|
||||
` cp -a "$shared_src/package.json" "$compact_context/src/components/shared/package.json"`,
|
||||
` [ ! -f "$shared_src/tsconfig.json" ] || cp -a "$shared_src/tsconfig.json" "$compact_context/src/components/shared/tsconfig.json"`,
|
||||
` cp -a "$shared_src/src" "$compact_context/src/components/shared/src"`,
|
||||
` date -u +%Y-%m-%dT%H:%M:%SZ > "$compact_context/.unidesk-build-context-refreshed-at"`,
|
||||
` fi`,
|
||||
`done`,
|
||||
].join("\n");
|
||||
const script = [
|
||||
"set -eu",
|
||||
`cd ${shellQuote(workspace)}`,
|
||||
compactBuildContextRefreshScript,
|
||||
`old_ids=$(${listServiceContainersCommand.map(shellQuote).join(" ")})`,
|
||||
`first_old=""`,
|
||||
`for old_id in $old_ids; do first_old="$old_id"; break; done`,
|
||||
@@ -1669,6 +1696,8 @@ function upgradePlan(taskId: string): Record<string, JsonValue> {
|
||||
"/var/run/docker.sock:/var/run/docker.sock",
|
||||
"-v",
|
||||
`${config.upgradeHostProjectRoot}:${workspace}:ro`,
|
||||
"-v",
|
||||
`${config.upgradeHostProjectRoot.replace(/\/+$/, "")}/.state:${workspaceRoot}/.state`,
|
||||
"-w",
|
||||
workspace,
|
||||
config.upgradeRunnerImage,
|
||||
@@ -1714,7 +1743,8 @@ function upgradePlan(taskId: string): Record<string, JsonValue> {
|
||||
candidateUsesOldContainerEnvironment: true,
|
||||
candidateUsesHostPidNamespace: true,
|
||||
startupSelfHealsRestartPolicy: true,
|
||||
dockerStatusReportsRestartPolicyAndPidMode: true,
|
||||
dockerStatusReportsRestartPolicyAndPidMode: true,
|
||||
refreshesCompactBuildContextBeforeBuild: true,
|
||||
removeScope: {
|
||||
projectLabel: config.upgradeComposeProject,
|
||||
serviceLabel: config.upgradeService,
|
||||
@@ -1723,6 +1753,8 @@ function upgradePlan(taskId: string): Record<string, JsonValue> {
|
||||
namedVolumesPreserved: true,
|
||||
},
|
||||
dockerRunCommand,
|
||||
compactBuildContextCandidates,
|
||||
workspaceStateMount: `${config.upgradeHostProjectRoot.replace(/\/+$/, "")}/.state:${workspaceRoot}/.state`,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user