From 60a4be195f19144a9eb0b4b902b15bc76213fc9c Mon Sep 17 00:00:00 2001 From: Anbraten Date: Mon, 12 Sep 2022 08:43:26 +0000 Subject: [PATCH 1/3] feat: add and release container image --- .releaserc.json | 12 +++++++++++- Containerfile | 13 +++++++++++++ src/config.ts | 2 +- 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 Containerfile diff --git a/.releaserc.json b/.releaserc.json index 2923c6a..1780af9 100644 --- a/.releaserc.json +++ b/.releaserc.json @@ -1,3 +1,13 @@ { - "extends": "@geprog/semantic-release-config" + "extends": "@geprog/semantic-release-config", + "plugins": [ + "@codedependant/semantic-release-docker", + { + "dockerTags": ["latest", "{{version}}"], + "dockerFile": "Containerfile", + "dockerRegistry": "ghcr.io", + "dockerProject": "geprog", + "dockerImage": "oauth-mock-server" + } + ] } diff --git a/Containerfile b/Containerfile new file mode 100644 index 0000000..61edaaf --- /dev/null +++ b/Containerfile @@ -0,0 +1,13 @@ +FROM node:16-alpine + +ENV NODE_ENV=production + +RUN apk --no-cache add ca-certificates + +WORKDIR /app + +CMD ["node", "index.js"] + +COPY ./dist/ . + +RUN chown -R node:node /app diff --git a/src/config.ts b/src/config.ts index d82b910..55e9932 100644 --- a/src/config.ts +++ b/src/config.ts @@ -16,7 +16,7 @@ export type Config = { export function getConfig(): Config { const defaultConfig = { - realm: 'my-project', + realm: process.env.REALM || 'my-project', users: [ { id: '1', From 01de3b7d0ed66a1858f1a1a407ec843b634bd555 Mon Sep 17 00:00:00 2001 From: Anbraten Date: Mon, 12 Sep 2022 08:46:22 +0000 Subject: [PATCH 2/3] add package --- package.json | 1 + pnpm-lock.yaml | 56 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index ed396cb..9fc70d0 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "tsx": "3.5.0" }, "devDependencies": { + "@codedependant/semantic-release-docker": "4.1.0", "@geprog/eslint-config": "1.1.0", "@geprog/semantic-release-config": "1.0.0", "@types/jsonwebtoken": "8.5.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b2cc3f8..4228b58 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,6 +1,7 @@ lockfileVersion: 5.4 specifiers: + '@codedependant/semantic-release-docker': 4.1.0 '@fastify/formbody': 7.0.1 '@geprog/eslint-config': 1.1.0 '@geprog/semantic-release-config': 1.0.0 @@ -23,6 +24,7 @@ dependencies: tsx: 3.5.0 devDependencies: + '@codedependant/semantic-release-docker': 4.1.0 '@geprog/eslint-config': 1.1.0_4guzhfrlitqfeskhcqimwf3bxa '@geprog/semantic-release-config': 1.0.0_semantic-release@19.0.2 '@types/jsonwebtoken': 8.5.8 @@ -68,6 +70,18 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true + /@codedependant/semantic-release-docker/4.1.0: + resolution: {integrity: sha512-M+7L4PcFoBn6cXZv2F8tKBk5uzGogdWy2tCfkWzhNKBw6yvnjXf6y6/uEPpdPnu0DP0+kAp1BmtqVmeKslbquw==} + dependencies: + '@semantic-release/error': 3.0.0 + debug: 4.3.4 + execa: 4.1.0 + handlebars: 4.7.7 + semver: 7.3.7 + transitivePeerDependencies: + - supports-color + dev: true + /@colors/colors/1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -1345,8 +1359,8 @@ packages: engines: {node: '>=10'} hasBin: true dependencies: - is-text-path: 1.0.1 JSONStream: 1.3.5 + is-text-path: 1.0.1 lodash: 4.17.21 meow: 8.1.2 split2: 3.2.2 @@ -1564,6 +1578,12 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true + /end-of-stream/1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + /env-ci/5.5.0: resolution: {integrity: sha512-o0JdWIbOLP+WJKIUt36hz1ImQQFuN92nhsfTkHHap+J8CiI8WgGpH/a9jEGHh4/TU5BUUGjlnKXNoDb57+ne+A==} engines: {node: '>=10.17'} @@ -2122,6 +2142,21 @@ packages: engines: {node: '>=6'} dev: false + /execa/4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + /execa/5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -2375,6 +2410,13 @@ packages: has-symbols: 1.0.3 dev: true + /get-stream/5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: true + /get-stream/6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -2560,6 +2602,11 @@ packages: - supports-color dev: true + /human-signals/1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + dev: true + /human-signals/2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -3821,6 +3868,13 @@ packages: ipaddr.js: 1.9.1 dev: false + /pump/3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + /punycode/2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} From 33f14a7f358f65a14733f291c43a008bdb35b6d2 Mon Sep 17 00:00:00 2001 From: Anbraten Date: Mon, 12 Sep 2022 08:52:10 +0000 Subject: [PATCH 3/3] add credentials --- .github/workflows/release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 632dda7..5d1b34b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -40,4 +40,6 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + DOCKER_REGISTRY_USER: geprog + DOCKER_REGISTRY_PASSWORD: ${{ secrets.GITHUB_TOKEN }} run: pnpm run release