-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
82 lines (62 loc) · 2.35 KB
/
index.js
File metadata and controls
82 lines (62 loc) · 2.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
const core = require("@actions/core");
const aws = require("aws-sdk");
const fs = require("fs");
async function run() {
try {
var ecrUri = core.getInput("ecr_uri", { required: false });
var env = core.getInput("env", { required: false });
var serviceName = core.getInput("service", { required: false });
if (env == "") {
env=process.env.ENV;
}
if (serviceName == "") {
serviceName=process.env.GITHUB_REPOSITORY.split('/')[1];
}
if (ecrUri == "") {
core.debug(`Describing ECR for ${serviceName}`);
const ecr = new aws.ECR();
const params = {
repositoryNames: [serviceName]
};
var ecr_data = await ecr.describeRepositories(params).promise();
var ecr_uri = ecr_data.repositories[0].repositoryUri
}
core.info(`Starting build with env:${env} service:${serviceName} ecr_uri:${ecr_uri}`);
fs.copyFileSync('/retentionscience/rs-github-action-play-build/scheduler-entrypoint', 'conf/scheduler-entrypoint');
const { spawnSync } = require("child_process");
var sbt = spawnSync("sbt",["docker:publishLocal"]);
core.info(`stderr: ${sbt.stderr}`);
core.info(`stdout: ${sbt.stdout}`);
if (sbt.status != 0) {
core.setFailed(`sbt docker:publishLocal returned ${sbt.status}`);
return;
}
var versionstr = fs.readFileSync('version.sbt', 'utf8');
var version = versionstr.split(" := ")[1];
version = version.replace(/"/g, "");
core.info(`Found version: ${version}`)
core.info(`Spawning: docker tag ${serviceName}:${version} ${ecr_uri}:${env}`);
var tag = spawnSync("docker",['tag',`${serviceName}:${version}`,`${ecr_uri}:${env}`]);
core.info(`stderr: ${tag.stderr}`);
core.info(`stdout: ${tag.stdout}`);
if (tag.status != 0) {
core.setFailed(`docker tag ${serviceName}:${version} ${ecr_uri}:${env} returned ${tag.status}.`);
return;
}
core.info(`Spawning: docker push ${ecr_uri}:${env}`);
var push = spawnSync("docker",['push',`${ecr_uri}:${env}`]);
core.info(`stderr: ${push.stderr}`);
core.info(`stdout: ${push.stdout}`);
if (push.status != 0) {
core.setFailed(`docker push ${ecr_uri}:${env} returned ${push.status}`);
return;
}
} catch (error) {
core.setFailed(error.message);
}
}
module.exports = run;
/* istanbul ignore next */
if (require.main === module) {
run();
}