Skip to content
This repository was archived by the owner on Mar 1, 2022. It is now read-only.

Commit 185e2a2

Browse files
Merge pull request #3 from codeclimate/npc/first-cut
Finish first cut of action
2 parents c08ff57 + 83c6a3f commit 185e2a2

File tree

4 files changed

+180
-4
lines changed

4 files changed

+180
-4
lines changed

lib/main.js

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,44 @@
11
"use strict";
2+
var __importStar = (this && this.__importStar) || function (mod) {
3+
if (mod && mod.__esModule) return mod;
4+
var result = {};
5+
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
6+
result["default"] = mod;
7+
return result;
8+
};
9+
var __importDefault = (this && this.__importDefault) || function (mod) {
10+
return (mod && mod.__esModule) ? mod : { "default": mod };
11+
};
212
Object.defineProperty(exports, "__esModule", { value: true });
13+
const core = __importStar(require("@actions/core"));
14+
const axios_1 = __importDefault(require("axios"));
15+
const fs_1 = require("fs");
16+
const snakecase_keys_1 = __importDefault(require("snakecase-keys"));
17+
const camelcase_keys_1 = __importDefault(require("camelcase-keys"));
18+
const DEPLOYS_URL = process.env.VELOCITY_DEPLOYS_URL || "https://velocity.codeclimate.com/deploys";
19+
const GITHUB_EVENT_PATH = process.env.GITHUB_EVENT_PATH;
20+
const readEvent = () => camelcase_keys_1.default(JSON.parse(fs_1.readFileSync(GITHUB_EVENT_PATH, "utf8")));
21+
const report = (deploy) => axios_1.default.post(DEPLOYS_URL, snakecase_keys_1.default({
22+
branch: deploy.branch,
23+
environment: deploy.environment,
24+
revision: deploy.revision,
25+
version: deploy.version,
26+
repositoryUrl: "foo",
27+
token: process.env.VELOCITY_DEPLOYMENT_TOKEN,
28+
}));
329
const main = () => {
4-
console.log("Hello world");
30+
try {
31+
const event = readEvent();
32+
report({
33+
revision: process.env.GITHUB_SHA,
34+
branch: process.env.GITHUB_REF,
35+
environment: core.getInput("environment") || (event.deployment || {}).environment,
36+
version: core.getInput("version"),
37+
repositoryUrl: event.repository.webUrl,
38+
});
39+
}
40+
catch (error) {
41+
core.setFailed(error.message);
42+
}
543
};
644
main();

package-lock.json

Lines changed: 90 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,12 @@
44
},
55
"dependencies": {
66
"@actions/core": "file:toolkit/actions-core-0.0.0.tgz",
7-
"@actions/io": "file:toolkit/actions-io-0.0.0.tgz",
87
"@actions/exec": "file:toolkit/actions-exec-0.0.0.tgz",
9-
"@actions/tool-cache": "file:toolkit/actions-tool-cache-0.0.0.tgz"
8+
"@actions/io": "file:toolkit/actions-io-0.0.0.tgz",
9+
"@actions/tool-cache": "file:toolkit/actions-tool-cache-0.0.0.tgz",
10+
"axios": "^0.19.0",
11+
"camelcase-keys": "^6.0.0",
12+
"snakecase-keys": "^3.1.0"
1013
},
1114
"devDependencies": {
1215
"@types/node": "^12.6.8",

src/main.ts

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,52 @@
11
import * as core from "@actions/core"
2+
import axios, { AxiosResponse } from "axios"
3+
import { readFileSync } from "fs"
4+
import snake from "snakecase-keys"
5+
import camel from "camelcase-keys"
6+
7+
interface Deploy {
8+
revision: string
9+
branch: string
10+
environment: string | null
11+
version: string | null
12+
repositoryUrl: string
13+
}
14+
15+
const DEPLOYS_URL: string =
16+
process.env.VELOCITY_DEPLOYS_URL || "https://velocity.codeclimate.com/deploys"
17+
18+
const GITHUB_EVENT_PATH: string = process.env.GITHUB_EVENT_PATH as string
19+
const readEvent = (): any =>
20+
camel(JSON.parse(readFileSync(GITHUB_EVENT_PATH, "utf8")))
21+
22+
const report = (deploy: Deploy): Promise<AxiosResponse<any>> =>
23+
axios.post(
24+
DEPLOYS_URL,
25+
snake({
26+
branch: deploy.branch,
27+
environment: deploy.environment,
28+
revision: deploy.revision,
29+
version: deploy.version,
30+
repositoryUrl: "foo",
31+
token: process.env.VELOCITY_DEPLOYMENT_TOKEN,
32+
})
33+
)
234

335
const main = (): void => {
4-
console.log("Hello world")
36+
try {
37+
const event = readEvent()
38+
39+
report({
40+
revision: process.env.GITHUB_SHA as string,
41+
branch: process.env.GITHUB_REF as string,
42+
environment:
43+
core.getInput("environment") || (event.deployment || {}).environment,
44+
version: core.getInput("version"),
45+
repositoryUrl: event.repository.webUrl,
46+
})
47+
} catch (error) {
48+
core.setFailed(error.message)
49+
}
550
}
651

752
main()

0 commit comments

Comments
 (0)