helpers: add more icons for different artifacts
Signed-off-by: Jakub Sokołowski <jakub@status.im>
This commit is contained in:
parent
26dd86cce2
commit
25d4090ccc
|
@ -19,12 +19,25 @@ const fileExt = (data) => {
|
|||
ext = 'ipa' /* diawi urls don't contain file extension */
|
||||
} else if (data.endsWith('tar.gz')) {
|
||||
ext = 'tgz' /* three-letter extensions just look nicer */
|
||||
} else if (data.endsWith('consoleText')) {
|
||||
} else if (data.endsWith('consoleText') || data == 'log') {
|
||||
ext = 'log' /* log link is often a fallback */
|
||||
} else if (data.match(/^https?:\/\/.+\/[^.]+\.(\w{3,8})$/)) {
|
||||
ext = data.split('.').pop()
|
||||
}
|
||||
return new Handlebars.SafeString(ext.slice(0, 3))
|
||||
return Handlebars.Utils.escapeExpression(ext.slice(0, 3))
|
||||
}
|
||||
|
||||
/* pick different icons for different urls */
|
||||
const fileIcon = (data) => {
|
||||
switch (fileExt(data)) {
|
||||
case 'pkg': return ':package:';
|
||||
case 'apk': return ':robot:';
|
||||
case 'ipa': return ':iphone:';
|
||||
case 'exe': return ':cd:';
|
||||
case 'dmg': return ':apple:';
|
||||
case 'log': return ':page_facing_up:';
|
||||
default: return ':package:';
|
||||
}
|
||||
}
|
||||
|
||||
/* remove seconds from duration to make columns equal width */
|
||||
|
@ -48,6 +61,7 @@ module.exports = {
|
|||
commitChanged,
|
||||
formatDate,
|
||||
fileExt,
|
||||
fileIcon,
|
||||
shortenDuration,
|
||||
genQRCodeUrl,
|
||||
}
|
||||
|
|
|
@ -23,15 +23,15 @@ const buildsTable = `
|
|||
const buildRow = `
|
||||
{{#if this.success }}
|
||||
{{#if this.pkg_url }}
|
||||
| :heavy_check_mark: | {{ this.commit }} | [{{ this.id }}]({{ this.url }}) | {{formatDate this.meta.created }} | {{ shortenDuration this.duration }} | \`{{ this.platform }}\` | [:package:\`{{fileExt this.pkg_url }}\`]({{ this.pkg_url }}) {{ genQRCodeUrl this.pkg_url }}|
|
||||
| :heavy_check_mark: | {{ this.commit }} | [{{ this.id }}]({{ this.url }}) | {{formatDate this.meta.created }} | {{ shortenDuration this.duration }} | \`{{ this.platform }}\` | [{{ fileIcon this.pkg_url }}\`{{ fileExt this.pkg_url }}\`]({{ this.pkg_url }}) {{ genQRCodeUrl this.pkg_url }}|
|
||||
{{else}}
|
||||
| :interrobang: | {{ this.commit }} | [{{ this.id }}]({{ this.url }}) | {{formatDate this.meta.created }} | {{ shortenDuration this.duration }} | \`{{ this.platform }}\` | [:page_facing_up:\`log\`]({{ this.url }}consoleText) |
|
||||
| :interrobang: | {{ this.commit }} | [{{ this.id }}]({{ this.url }}) | {{formatDate this.meta.created }} | {{ shortenDuration this.duration }} | \`{{ this.platform }}\` | [{{ fileIcon "log" }}\`log\`]({{ this.url }}consoleText) |
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{#if this.pkg_url }}
|
||||
| :heavy_multiplication_x: | {{ this.commit }} | [{{ this.id }}]({{ this.url }}) | {{formatDate this.meta.created }} | {{ shortenDuration this.duration }} | \`{{ this.platform }}\` | [:package:\`{{fileExt this.pkg_url }}\`]({{ this.pkg_url }}) {{ genQRCodeUrl this.pkg_url }}|
|
||||
| :heavy_multiplication_x: | {{ this.commit }} | [{{ this.id }}]({{ this.url }}) | {{formatDate this.meta.created }} | {{ shortenDuration this.duration }} | \`{{ this.platform }}\` | [{{ fileIcon this.pkg_url }}\`{{ fileExt this.pkg_url }}\`]({{ this.pkg_url }}) {{ genQRCodeUrl this.pkg_url }}|
|
||||
{{else}}
|
||||
| :x: | {{ this.commit }} | [{{ this.id }}]({{ this.url }}) | {{formatDate this.meta.created }} | {{ shortenDuration this.duration }} | \`{{ this.platform }}\` | [:page_facing_up:\`log\`]({{ this.url }}consoleText) |
|
||||
| :x: | {{ this.commit }} | [{{ this.id }}]({{ this.url }}) | {{formatDate this.meta.created }} | {{ shortenDuration this.duration }} | \`{{ this.platform }}\` | [{{ fileIcon "log" }}\`log\`]({{ this.url }}consoleText) |
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
`.trim()
|
||||
|
|
|
@ -12,8 +12,8 @@ const COMMENT = `
|
|||
### Jenkins Builds
|
||||
| :grey_question: | Commit | :hash: | Finished (UTC) | Duration | Platform | Result |
|
||||
|-|-|-|-|-|-|-|
|
||||
| :heavy_check_mark: | COMMIT-0 | [ID-1](URL-1/) | 2018-12-20 08:25:56 | DURATION-1 | \`PLATFORM-1\` | [:package:\`apk\`](https://example.org/StatusIm-123-456-abc-pr.apk) [:calling:](https://chart.apis.google.com/chart?cht=qr&chs=400x400&chld=L%7C%0A1&chl=https%3A%2F%2Fexample.org%2FStatusIm-123-456-abc-pr.apk)|
|
||||
| :heavy_check_mark: | COMMIT-0 | [ID-2](URL-2/) | 2018-12-20 08:26:53 | DURATION-2 | \`PLATFORM-2\` | [:package:\`exe\`](https://example.org/StatusIm-123-456-abc-pr.exe) |
|
||||
| :heavy_check_mark: | COMMIT-0 | [ID-1](URL-1/) | 2018-12-20 08:25:56 | DURATION-1 | \`PLATFORM-1\` | [:robot:\`apk\`](https://example.org/StatusIm-123-456-abc-pr.apk) [:calling:](https://chart.apis.google.com/chart?cht=qr&chs=400x400&chld=L%7C%0A1&chl=https%3A%2F%2Fexample.org%2FStatusIm-123-456-abc-pr.apk)|
|
||||
| :heavy_check_mark: | COMMIT-0 | [ID-2](URL-2/) | 2018-12-20 08:26:53 | DURATION-2 | \`PLATFORM-2\` | [:cd:\`exe\`](https://example.org/StatusIm-123-456-abc-pr.exe) |
|
||||
`
|
||||
|
||||
const COMMENT_FOLDED = `
|
||||
|
@ -23,12 +23,12 @@ const COMMENT_FOLDED = `
|
|||
|
||||
| :grey_question: | Commit | :hash: | Finished (UTC) | Duration | Platform | Result |
|
||||
|-|-|-|-|-|-|-|
|
||||
| :heavy_check_mark: | COMMIT-0 | [ID-1](URL-1/) | 2018-12-20 08:25:56 | DURATION-1 | \`PLATFORM-1\` | [:package:\`apk\`](https://example.org/StatusIm-123-456-abc-pr.apk) [:calling:](https://chart.apis.google.com/chart?cht=qr&chs=400x400&chld=L%7C%0A1&chl=https%3A%2F%2Fexample.org%2FStatusIm-123-456-abc-pr.apk)|
|
||||
| :heavy_check_mark: | COMMIT-0 | [ID-2](URL-2/) | 2018-12-20 08:26:53 | DURATION-2 | \`PLATFORM-2\` | [:package:\`exe\`](https://example.org/StatusIm-123-456-abc-pr.exe) |
|
||||
| :heavy_check_mark: | COMMIT-0 | [ID-1](URL-1/) | 2018-12-20 08:25:56 | DURATION-1 | \`PLATFORM-1\` | [:robot:\`apk\`](https://example.org/StatusIm-123-456-abc-pr.apk) [:calling:](https://chart.apis.google.com/chart?cht=qr&chs=400x400&chld=L%7C%0A1&chl=https%3A%2F%2Fexample.org%2FStatusIm-123-456-abc-pr.apk)|
|
||||
| :heavy_check_mark: | COMMIT-0 | [ID-2](URL-2/) | 2018-12-20 08:26:53 | DURATION-2 | \`PLATFORM-2\` | [:cd:\`exe\`](https://example.org/StatusIm-123-456-abc-pr.exe) |
|
||||
| :x: | COMMIT-0 | [ID-3](URL-3/) | 2018-12-20 08:27:50 | DURATION-3 | \`PLATFORM-3\` | [:page_facing_up:\`log\`](URL-3/consoleText) |
|
||||
| | | | | | | |
|
||||
| :heavy_check_mark: | COMMIT-1 | [ID-4](URL-4/) | 2018-12-20 08:28:47 | DURATION-4 | \`PLATFORM-4\` | [:package:\`App\`](https://example.org/StatusIm-123-456-abc-pr.AppImage) |
|
||||
| :heavy_check_mark: | COMMIT-1 | [ID-5](URL-5/) | 2018-12-20 08:29:43 | DURATION-5 | \`PLATFORM-5\` | [:package:\`ipa\`](https://i.diawi.com/ABCDxyz1) [:calling:](https://chart.apis.google.com/chart?cht=qr&chs=400x400&chld=L%7C%0A1&chl=https%3A%2F%2Fi.diawi.com%2FABCDxyz1)|
|
||||
| :heavy_check_mark: | COMMIT-1 | [ID-5](URL-5/) | 2018-12-20 08:29:43 | DURATION-5 | \`PLATFORM-5\` | [:iphone:\`ipa\`](https://i.diawi.com/ABCDxyz1) [:calling:](https://chart.apis.google.com/chart?cht=qr&chs=400x400&chld=L%7C%0A1&chl=https%3A%2F%2Fi.diawi.com%2FABCDxyz1)|
|
||||
| :heavy_multiplication_x: | COMMIT-1 | [ID-6](URL-6/) | 2018-12-20 08:30:40 | DURATION-6 | \`PLATFORM-6\` | [:package:\`pkg\`](https://unknown.example.org/path/package) |
|
||||
| :interrobang: | COMMIT-1 | [ID-7](URL-7/) | 2018-12-20 08:31:37 | DURATION-7 | \`PLATFORM-7\` | [:page_facing_up:\`log\`](URL-7/consoleText) |
|
||||
</details>
|
||||
|
@ -36,8 +36,8 @@ const COMMENT_FOLDED = `
|
|||
| :grey_question: | Commit | :hash: | Finished (UTC) | Duration | Platform | Result |
|
||||
|-|-|-|-|-|-|-|
|
||||
| :heavy_check_mark: | COMMIT-2 | [ID-8](URL-8/) | 2018-12-20 08:32:34 | DURATION-8 | \`PLATFORM-8\` | [:package:\`tgz\`](https://example.org/StatusIm-123-456-abc-pr.tar.gz) |
|
||||
| :heavy_multiplication_x: | COMMIT-2 | [ID-9](URL-9/) | 2018-12-20 08:33:31 | DURATION-9 | \`PLATFORM-9\` | [:package:\`apk\`](https://example.org/StatusIm-123-456-abc-pr.apk) [:calling:](https://chart.apis.google.com/chart?cht=qr&chs=400x400&chld=L%7C%0A1&chl=https%3A%2F%2Fexample.org%2FStatusIm-123-456-abc-pr.apk)|
|
||||
| :heavy_check_mark: | COMMIT-2 | [ID-10](URL-10/) | 2018-12-20 08:34:27 | DURATION-10 | \`PLATFORM-10\` | [:package:\`exe\`](https://example.org/StatusIm-123-456-abc-pr.exe) |
|
||||
| :heavy_multiplication_x: | COMMIT-2 | [ID-9](URL-9/) | 2018-12-20 08:33:31 | DURATION-9 | \`PLATFORM-9\` | [:robot:\`apk\`](https://example.org/StatusIm-123-456-abc-pr.apk) [:calling:](https://chart.apis.google.com/chart?cht=qr&chs=400x400&chld=L%7C%0A1&chl=https%3A%2F%2Fexample.org%2FStatusIm-123-456-abc-pr.apk)|
|
||||
| :heavy_check_mark: | COMMIT-2 | [ID-10](URL-10/) | 2018-12-20 08:34:27 | DURATION-10 | \`PLATFORM-10\` | [:cd:\`exe\`](https://example.org/StatusIm-123-456-abc-pr.exe) |
|
||||
| :interrobang: | COMMIT-2 | [ID-11](URL-11/) | 2018-12-20 08:35:24 | DURATION-11 | \`PLATFORM-11\` | [:page_facing_up:\`log\`](URL-11/consoleText) |
|
||||
| | | | | | | |
|
||||
| :heavy_multiplication_x: | COMMIT-3 | [ID-12](URL-12/) | 2018-12-20 08:36:21 | DURATION-12 | \`PLATFORM-12\` | [:package:\`App\`](https://example.org/StatusIm-123-456-abc-pr.AppImage) |
|
||||
|
|
|
@ -12,7 +12,7 @@ describe('Schema', () => {
|
|||
/* refresh for every test */
|
||||
build = Object.assign({}, sample.BUILD)
|
||||
})
|
||||
|
||||
|
||||
describe('id', () => {
|
||||
it('can be a string', () => {
|
||||
let rval = schema.validate(build)
|
||||
|
|
Loading…
Reference in New Issue