Put commit hash and build time on admin page
This commit is contained in:
@@ -32,6 +32,8 @@ RUN curl https://api.rollbar.com/api/1/deploy/ \
|
|||||||
-F revision=$(git log -n 1 --pretty=format:"%H") \
|
-F revision=$(git log -n 1 --pretty=format:"%H") \
|
||||||
-F local_username="$(git log -n 1 --pretty=format:"%an")"
|
-F local_username="$(git log -n 1 --pretty=format:"%an")"
|
||||||
|
|
||||||
|
RUN node setup.js
|
||||||
|
|
||||||
WORKDIR /usr/src/app/build
|
WORKDIR /usr/src/app/build
|
||||||
|
|
||||||
CMD [ "node", "server.js" ]
|
CMD [ "node", "server.js" ]
|
||||||
|
|||||||
24
setup.js
Normal file
24
setup.js
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
/* eslint-disable no-console */
|
||||||
|
const exec = require('child_process').exec;
|
||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
|
const config = {
|
||||||
|
build: {},
|
||||||
|
};
|
||||||
|
|
||||||
|
function writeConfigFile() {
|
||||||
|
fs.writeFile('build/public/config.json', JSON.stringify(config), (err) => {
|
||||||
|
if (err) {
|
||||||
|
return console.error(err);
|
||||||
|
}
|
||||||
|
return console.log('Config file saved');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
exec('git log -n 1 --pretty=format:"%H"', (err, stdout) => {
|
||||||
|
if (stdout) {
|
||||||
|
config.build.hash = stdout;
|
||||||
|
config.build.time = new Date();
|
||||||
|
writeConfigFile();
|
||||||
|
}
|
||||||
|
});
|
||||||
@@ -22,6 +22,10 @@ class Admin extends React.Component {
|
|||||||
name: PropTypes.string,
|
name: PropTypes.string,
|
||||||
total: PropTypes.integer,
|
total: PropTypes.integer,
|
||||||
})).isRequired,
|
})).isRequired,
|
||||||
|
build: PropTypes.shape({
|
||||||
|
hash: PropTypes.string,
|
||||||
|
time: PropTypes.string,
|
||||||
|
}),
|
||||||
};
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
@@ -50,6 +54,12 @@ class Admin extends React.Component {
|
|||||||
))}
|
))}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
Build hash: <a href={`https://bitbucket.org/dan_head/wedding/commits/${this.props.build.hash}`}>{this.props.build.hash}</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Build time: {this.props.build.time}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Layout from '../../components/Layout';
|
import Layout from '../../components/Layout';
|
||||||
import fetchQL from '../../core/fetchQL';
|
import fetchQL from '../../core/fetchQL';
|
||||||
|
import fetch from '../../core/fetch';
|
||||||
import { starters, mains } from '../../config';
|
import { starters, mains } from '../../config';
|
||||||
|
|
||||||
const title = 'Admin';
|
const title = 'Admin';
|
||||||
@@ -11,7 +12,14 @@ export default {
|
|||||||
|
|
||||||
async action() {
|
async action() {
|
||||||
const resp = await fetchQL('{getAllPersons{key,firstname,lastname,email,password,completed,starter,main}}');
|
const resp = await fetchQL('{getAllPersons{key,firstname,lastname,email,password,completed,starter,main}}');
|
||||||
|
const configResp = await fetch('/config.json', {
|
||||||
|
headers: {
|
||||||
|
Accept: 'application/json',
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
},
|
||||||
|
});
|
||||||
const { data } = await resp.json();
|
const { data } = await resp.json();
|
||||||
|
const config = await configResp.json();
|
||||||
const people = data.getAllPersons || [];
|
const people = data.getAllPersons || [];
|
||||||
|
|
||||||
const food = {
|
const food = {
|
||||||
@@ -37,6 +45,7 @@ export default {
|
|||||||
people={people}
|
people={people}
|
||||||
starters={food.starters}
|
starters={food.starters}
|
||||||
mains={food.mains}
|
mains={food.mains}
|
||||||
|
build={config.build}
|
||||||
/></Layout>,
|
/></Layout>,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user