Browse Source
* Upload builds to Slack after every commit * Make XO happy * chmod +x * Do not skip pull requests * Add `slackup` dependency * Use the new `slackup` API * `node` === latest * `msg2` => `msg` * Build the slack script before using it on CI * Shut up XO * chmod +x * Move the built scripts to the `build` directory * Bump `slackup` * Fix spacing * fml * Let the Slack know when the node version is being skippedmaster
Matheus Fernandes
8 years ago
committed by
GitHub
4 changed files with 86 additions and 2 deletions
@ -0,0 +1,72 @@ |
|||
#!/usr/bin/env node
|
|||
|
|||
const slackup = require('slackup') |
|||
const fetch = require('node-fetch') |
|||
|
|||
const repo = process.env.TRAVIS_REPO_SLUG |
|||
const commit = process.env.TRAVIS_COMMIT |
|||
const branch = process.env.TRAVIS_BRANCH |
|||
const apiKey = process.env.SLACK_API_KEY |
|||
const channel = process.env.SLACK_CHANNEL |
|||
const githubToken = process.env.GITHUB_API_KEY |
|||
const currentNodeVersion = process.env.TRAVIS_NODE_VERSION |
|||
const regex = /^(node|7)\.*/ |
|||
|
|||
// Skip if not on a zeit repo
|
|||
if (!/^zeit\//.test(repo)) { |
|||
console.log('not a zeit repo') |
|||
process.exit(0) |
|||
} |
|||
|
|||
if (!apiKey) { |
|||
console.log('$SLACKUP_TOKEN not found') |
|||
process.exit(0) |
|||
} |
|||
|
|||
if (!channel) { |
|||
console.log('$SLACKUP_CHANNEL not found') |
|||
process.exit(0) |
|||
} |
|||
|
|||
if (!githubToken) { |
|||
console.log('$GITHUB_TOKEN not found') |
|||
process.exit(0) |
|||
} |
|||
|
|||
const opts = { |
|||
headers: { |
|||
authorization: `token ${githubToken}` |
|||
} |
|||
} |
|||
|
|||
fetch(`https://api.github.com/repos/${repo}/commits/${commit}`, opts) |
|||
.then(res => res.json()) |
|||
.then(res => ({ |
|||
message: res.commit.message, |
|||
authorName: res.commit.author.name, |
|||
authorUrl: res.author.html_url |
|||
})) |
|||
.then(async res => { |
|||
if (regex.test(currentNodeVersion)) { |
|||
const message = `:package: Here are the binaries for the branch *${branch}* of *${repo}* (commit <https://github.com/${repo}/commit/${commit}|${commit.substr(0, 7)}> by <${res.authorUrl}|${res.authorName}>):` |
|||
|
|||
const binaries = [ |
|||
`${__dirname}/../../packed/now-macos`, |
|||
`${__dirname}/../../packed/now-linux`, |
|||
`${__dirname}/../../packed/now-win.exe` |
|||
] |
|||
|
|||
try { |
|||
await slackup({apiKey, channel, type: 'message', message}) |
|||
await slackup({apiKey, channel, type: 'file', filePath: binaries[0]}) |
|||
await slackup({apiKey, channel, type: 'file', filePath: binaries[1]}) |
|||
await slackup({apiKey, channel, type: 'file', filePath: binaries[2]}) |
|||
} catch (err) { |
|||
console.log(`Couldn't send messages/files to Slack`, err) |
|||
} |
|||
} else { |
|||
const message = `:white_check_mark: Build succeded on Node ${currentNodeVersion} (commit <https://github.com/${repo}/commit/${commit}|${commit.substr(0, 7)}> by <${res.authorUrl}|${res.authorName}>)` |
|||
await slackup({apiKey, channel, type: 'message', message}) |
|||
} |
|||
}) |
|||
.catch(console.error) |
Loading…
Reference in new issue