Skip to content

Commit 06fb5b0

Browse files
jonsharrattpvdlg
authored andcommitted
feat: support Sail CI
1 parent 6f9321d commit 06fb5b0

File tree

6 files changed

+65
-0
lines changed

6 files changed

+65
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ if (isCI) {
7272
| [Drone](https://readme.drone.io/reference/environ/) | `drone` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: |
7373
| [Gitlab CI/CD](https://docs.gitlab.com/ce/ci/variables/README.html) | `gitlab` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: | :white_check_mark: | :white_check_mark: |
7474
| [Jenkins](https://wiki.jenkins.io/display/JENKINS/Building+a+software+project) | `jenkins` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :x: | :white_check_mark: | :white_check_mark: |
75+
| [Sail CI](https://sail.ci/docs/environment-variables) | `sail` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
7576
| [Semaphore](https://semaphoreci.com/docs/available-environment-variables.html) | `semaphore` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: | :x: | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
7677
| [Shippable](http://docs.shippable.com/ci/env-vars/#stdEnv) | `shippable` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
7778
| [TeamCity](https://confluence.jetbrains.com/display/TCD10/Predefined+Build+Parameters) | `teamcity` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :white_check_mark: | :white_check_mark: |

index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const services = {
1717
drone: require('./lib/drone'),
1818
gitlab: require('./lib/gitlab'),
1919
jenkins: require('./lib/jenkins'),
20+
sail: require('./lib/sail'),
2021
semaphore: require('./lib/semaphore'),
2122
shippable: require('./lib/shippable'),
2223
teamcity: require('./lib/teamcity'),

lib/sail.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// https://sail.ci/docs/environment-variables
2+
3+
module.exports = {
4+
detect({env}) {
5+
return Boolean(env.SAILCI);
6+
},
7+
configuration({env}) {
8+
return {
9+
name: 'Sail CI',
10+
service: 'sail',
11+
commit: env.SAIL_COMMIT_SHA,
12+
branch: env.SAIL_COMMIT_BRANCH,
13+
slug: `${env.SAIL_REPO_OWNER}/${env.SAIL_REPO_NAME}`,
14+
root: env.SAIL_CLONE_DIR,
15+
pr: env.SAIL_PULL_REQUEST_NUMBER,
16+
isPr: Boolean(env.SAIL_PULL_REQUEST_NUMBER),
17+
};
18+
},
19+
};

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
"git",
4646
"gitlab",
4747
"jenkins",
48+
"sail",
4849
"semaphore",
4950
"shippable",
5051
"teamcity",

test/index.test.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,13 @@ test('Jenkins', async t => {
9898
t.is(service, 'jenkins');
9999
});
100100

101+
test('Sail CI', t => {
102+
const {isCi, service} = m({env: {SAILCI: 'true'}});
103+
104+
t.is(isCi, true);
105+
t.is(service, 'sail');
106+
});
107+
101108
test('Semaphore', async t => {
102109
const {cwd} = await gitRepo();
103110
await gitCommit('Test commit message', {cwd});

test/sail.test.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import test from 'ava';
2+
import sail from '../lib/sail';
3+
4+
const env = {
5+
SAIL_COMMIT_SHA: 'full-commit-sha',
6+
SAIL_COMMIT_BRANCH: 'master',
7+
SAIL_REPO_OWNER: 'owner',
8+
SAIL_REPO_NAME: 'repo',
9+
SAIL_CLONE_DIR: '/workspace/repo',
10+
};
11+
12+
test('Push', t => {
13+
t.deepEqual(sail.configuration({env}), {
14+
name: 'Sail CI',
15+
service: 'sail',
16+
commit: 'full-commit-sha',
17+
branch: 'master',
18+
slug: 'owner/repo',
19+
pr: undefined,
20+
isPr: false,
21+
root: '/workspace/repo',
22+
});
23+
});
24+
25+
test('PR', t => {
26+
t.deepEqual(sail.configuration({env: Object.assign({}, env, {SAIL_PULL_REQUEST_NUMBER: '10'})}), {
27+
name: 'Sail CI',
28+
service: 'sail',
29+
commit: 'full-commit-sha',
30+
branch: 'master',
31+
slug: 'owner/repo',
32+
root: '/workspace/repo',
33+
pr: '10',
34+
isPr: true,
35+
});
36+
});

0 commit comments

Comments
 (0)