From 469b1f90d5890c3f52033c0bd912fc2a6e0d3224 Mon Sep 17 00:00:00 2001 From: Philip Harrison Date: Mon, 26 Jul 2021 14:57:27 +0100 Subject: [PATCH] Set repo contents path env var Sets up a `DEPENDABOT_REPO_CONTENTS_PATH` env var to a mounted folder that's shared between file fetching and file updating. --- .eslintignore | 2 ++ .gitignore | 1 + .prettierignore | 4 +++- src/updater.ts | 18 +++++++++--------- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/.eslintignore b/.eslintignore index 42ceb9a..6ce73a5 100644 --- a/.eslintignore +++ b/.eslintignore @@ -2,3 +2,5 @@ dist/ lib/ node_modules/ jest.config.js +repo/ +output/ diff --git a/.gitignore b/.gitignore index 1198b80..6467b3c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # Updater output output/output.json +repo # Dependency directory node_modules diff --git a/.prettierignore b/.prettierignore index 2186947..d59dbbe 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,3 +1,5 @@ dist/ lib/ -node_modules/ \ No newline at end of file +node_modules/ +output/ +repo/ diff --git a/src/updater.ts b/src/updater.ts index 57b9f75..c83ee71 100644 --- a/src/updater.ts +++ b/src/updater.ts @@ -9,7 +9,9 @@ import {pack} from 'tar-stream' const JOB_INPUT_FILENAME = 'job.json' const JOB_INPUT_PATH = `/home/dependabot/dependabot-updater` -const JOB_OUTPUT_PATH = '/home/dependabot/dependabot-updater/output/output.json' +const JOB_OUTPUT_FILENAME = 'output.json' +const JOB_OUTPUT_PATH = '/home/dependabot/dependabot-updater/output' +const REPO_CONTENTS_PATH = '/home/dependabot/dependabot-updater/repo' const DEFAULT_UPDATER_IMAGE = 'docker.pkg.github.com/dependabot/dependabot-updater:latest' @@ -89,7 +91,7 @@ export class Updater { details: JobDetails, credentials: Credential[] ): Promise { - const container = await this.createContainer(details, 'fetch_files') + const container = await this.createContainer('fetch_files') await this.storeContainerInput(container, { job: details, credentials @@ -120,7 +122,7 @@ export class Updater { files: FetchedFiles ): Promise { core.info(`running update ${details.id} ${files}`) - const container = await this.createContainer(details, 'update_files') + const container = await this.createContainer('update_files') const containerInput: FileUpdaterInput = { base_commit_sha: files.base_commit_sha, base64_dependency_files: files.base64_dependency_files, @@ -132,7 +134,6 @@ export class Updater { } private async createContainer( - details: JobDetails, updaterCommand: string ): Promise { const container = await this.docker.createContainer({ @@ -143,16 +144,15 @@ export class Updater { `DEPENDABOT_JOB_ID=${this.apiClient.params.jobID}`, `DEPENDABOT_JOB_TOKEN=${this.apiClient.params.jobToken}`, `DEPENDABOT_JOB_PATH=${JOB_INPUT_PATH}/${JOB_INPUT_FILENAME}`, - `DEPENDABOT_OUTPUT_PATH=${JOB_OUTPUT_PATH}`, + `DEPENDABOT_OUTPUT_PATH=${JOB_OUTPUT_PATH}/${JOB_OUTPUT_FILENAME}`, + `DEPENDABOT_REPO_CONTENTS_PATH=${REPO_CONTENTS_PATH}`, `DEPENDABOT_API_URL=${this.apiClient.params.dependabotAPIURL}` ], Cmd: ['bin/run', updaterCommand], HostConfig: { Binds: [ - `${path.join( - __dirname, - '../output' - )}:/home/dependabot/dependabot-updater/output:rw` + `${path.join(__dirname, '../output')}:${JOB_OUTPUT_PATH}:rw`, + `${path.join(__dirname, '../repo')}:${REPO_CONTENTS_PATH}:rw` ] } })