diff --git a/.github/workflows/gitlab.yml b/.github/workflows/gitlab.yml index 56b455fb8..a66e7d61c 100644 --- a/.github/workflows/gitlab.yml +++ b/.github/workflows/gitlab.yml @@ -28,7 +28,7 @@ jobs: ; user.password = '${{ github.token }}' ; user.password_confirmation = '${{ github.token }}' ; user.save! - ; token = user.personal_access_tokens.create(scopes: [:api], name: 'Token') + ; token = user.personal_access_tokens.create(scopes: [:api], name: 'Token', expires_at: 1.days.from_now) ; token.set_token('${{ github.token }}') ; token.save! " diff --git a/.github/workflows/images.yml b/.github/workflows/images.yml index a89d56931..b81f1fa7a 100644 --- a/.github/workflows/images.yml +++ b/.github/workflows/images.yml @@ -16,12 +16,12 @@ jobs: - base: 0 ubuntu: 18.04 python: 2.7 - cuda: 10.1 - cudnn: 7 + cuda: 11.2.2 + cudnn: 8 - base: 1 ubuntu: 20.04 python: 3.8 - cuda: 11.2.1 + cuda: 11.2.2 cudnn: 8 - latest: true # update the values below after introducing a new major version base: 1 diff --git a/README.md b/README.md index 574b05332..0dd84e15e 100644 --- a/README.md +++ b/README.md @@ -641,3 +641,7 @@ These are some example projects using CML. :key: :key: needs a [PAT](#environment-variables). + + +# :warning: Maintenance :warning: +- ~2023-07 Nvidia has dropped container CUDA images with [10.x](https://hub.docker.com/r/nvidia/cuda/tags?page=1&name=10)/[cudnn7](https://hub.docker.com/r/nvidia/cuda/tags?page=1&name=cudnn7) and [11.2.1](https://hub.docker.com/r/nvidia/cuda/tags?page=1&name=11.2.1), CML images will be updated accrodingly diff --git a/package-lock.json b/package-lock.json index a163003ad..17423b9e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,11 +35,11 @@ "proxy-agent": "^5.0.0", "pseudoexec": "^0.2.0", "remark": "^13.0.0", - "semver": "^7.3.5", + "semver": "^7.5.2", "simple-git": "^3.16.0", "strip-ansi": "^6.0.1", "strip-url-auth": "^1.0.1", - "tar": "^6.1.11", + "tar": "^6.1.15", "tempy": "^0.6.0", "timestring": "^6.0.0", "unist-util-visit": "^2.0.3", @@ -6058,6 +6058,12 @@ "node": ">=6" } }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, "node_modules/queue-microtask": { "version": "1.2.3", "funding": [ @@ -6197,6 +6203,12 @@ "node": ">=0.10.0" } }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, "node_modules/resolve": { "version": "1.22.1", "dev": true, @@ -6364,8 +6376,9 @@ } }, "node_modules/semver": { - "version": "7.3.7", - "license": "ISC", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6760,18 +6773,27 @@ "license": "MIT" }, "node_modules/tar": { - "version": "6.1.11", - "license": "ISC", + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">=10" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" } }, "node_modules/tar/node_modules/yallist": { @@ -6897,22 +6919,25 @@ } }, "node_modules/tough-cookie": { - "version": "4.0.0", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.1.2" + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, "engines": { "node": ">=6" } }, "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.1.2", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4.0.0" } @@ -7164,6 +7189,16 @@ "punycode": "^2.1.0" } }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "license": "MIT" @@ -7458,8 +7493,9 @@ } }, "node_modules/word-wrap": { - "version": "1.2.3", - "license": "MIT", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", + "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", "engines": { "node": ">=0.10.0" } @@ -11487,6 +11523,12 @@ "version": "2.1.1", "dev": true }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, "queue-microtask": { "version": "1.2.3" }, @@ -11560,6 +11602,12 @@ "require-directory": { "version": "2.1.1" }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, "resolve": { "version": "1.22.1", "dev": true, @@ -11658,7 +11706,9 @@ } }, "semver": { - "version": "7.3.7", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", "requires": { "lru-cache": "^6.0.0" }, @@ -11905,16 +11955,23 @@ "dev": true }, "tar": { - "version": "6.1.11", + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, "dependencies": { + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + }, "yallist": { "version": "4.0.0" } @@ -11992,16 +12049,21 @@ "version": "1.0.1" }, "tough-cookie": { - "version": "4.0.0", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, "requires": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.1.2" + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, "dependencies": { "universalify": { - "version": "0.1.2", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true } } @@ -12154,6 +12216,16 @@ "punycode": "^2.1.0" } }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "util-deprecate": { "version": "1.0.2" }, @@ -12341,7 +12413,9 @@ } }, "word-wrap": { - "version": "1.2.3" + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", + "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==" }, "wrap-ansi": { "version": "7.0.0", diff --git a/package.json b/package.json index efaa400a3..80e7445e4 100644 --- a/package.json +++ b/package.json @@ -93,11 +93,11 @@ "proxy-agent": "^5.0.0", "pseudoexec": "^0.2.0", "remark": "^13.0.0", - "semver": "^7.3.5", + "semver": "^7.5.2", "simple-git": "^3.16.0", "strip-ansi": "^6.0.1", "strip-url-auth": "^1.0.1", - "tar": "^6.1.11", + "tar": "^6.1.15", "tempy": "^0.6.0", "timestring": "^6.0.0", "unist-util-visit": "^2.0.3", diff --git a/src/drivers/gitlab.js b/src/drivers/gitlab.js index f5cb6a7df..489f64d35 100644 --- a/src/drivers/gitlab.js +++ b/src/drivers/gitlab.js @@ -200,6 +200,11 @@ class Gitlab { const { protocol, host } = new URL(this.repo); const { token } = await this.registerRunner({ tags: labels, name }); + let waitTimeout = idleTimeout; + if (idleTimeout === 'never') { + waitTimeout = '0'; + } + let dockerVolumesTpl = ''; dockerVolumes.forEach((vol) => { dockerVolumesTpl += `--docker-volumes ${vol} `; @@ -210,7 +215,7 @@ class Gitlab { --url "${protocol}//${host}" \ --name "${name}" \ --token "${token}" \ - --wait-timeout ${idleTimeout} \ + --wait-timeout ${waitTimeout} \ --executor "${IN_DOCKER ? 'shell' : 'docker'}" \ --docker-image "iterativeai/cml:${gpu ? 'latest-gpu' : 'latest'}" \ ${gpu ? '--docker-runtime nvidia' : ''} \ @@ -530,7 +535,10 @@ class Gitlab { } get branch() { - return process.env.CI_BUILD_REF_NAME; + if ('CI_COMMIT_BRANCH' in process.env) { + return process.env.CI_COMMIT_BRANCH; + } + return process.env.CI_COMMIT_REF_NAME; } get userEmail() {