Skip to content

Commit

Permalink
Detect provider types (#15)
Browse files Browse the repository at this point in the history
* rename 'detectProvider' to 'types'

* refactor types name
  • Loading branch information
justjavac authored Aug 24, 2022
1 parent 428885f commit 2971915
Show file tree
Hide file tree
Showing 26 changed files with 53 additions and 52 deletions.
4 changes: 2 additions & 2 deletions mod.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ import vsts from "./services/vsts.ts";
import wercker from "./services/wercker.ts";
import git from "./services/git.ts";

import IDetectProvider, { Info } from "./detectProvider.ts";
import type { DetectProvider, Info } from "./types.ts";

const { env, cwd } = Deno;

const services: { [index: string]: IDetectProvider } = {
const services: { [index: string]: DetectProvider } = {
appveyor,
bamboo,
bitbucket,
Expand Down
4 changes: 2 additions & 2 deletions services/appveyor.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// https://www.appveyor.com/docs/environment-variables

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const appveyorProvider: IDetectProvider = {
const appveyorProvider: DetectProvider = {
detect(env) {
return Boolean(env.APPVEYOR);
},
Expand Down
4 changes: 2 additions & 2 deletions services/bamboo.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// https://confluence.atlassian.com/bamboo/bamboo-variables-289277087.html

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const bambooProvider: IDetectProvider = {
const bambooProvider: DetectProvider = {
detect(env) {
return Boolean(env.bamboo_agentId);
},
Expand Down
4 changes: 2 additions & 2 deletions services/bitbucket.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// https://confluence.atlassian.com/bitbucket/environment-variables-794502608.html

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const bitbucketProvider: IDetectProvider = {
const bitbucketProvider: DetectProvider = {
detect(env) {
return Boolean(env.BITBUCKET_BUILD_NUMBER);
},
Expand Down
4 changes: 2 additions & 2 deletions services/bitrise.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// https://devcenter.bitrise.io/builds/available-environment-variables/#exposed-by-bitriseio

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const bitriseProvider: IDetectProvider = {
const bitriseProvider: DetectProvider = {
detect(env: { [index: string]: string }) {
return Boolean(env.BITRISE_IO);
},
Expand Down
4 changes: 2 additions & 2 deletions services/buddy.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// https://buddy.works/knowledge/deployments/how-use-environment-variables#default-environment-variables
import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";
import prNumber from "../utils/prNumber.ts";

const buddyProvider: IDetectProvider = {
const buddyProvider: DetectProvider = {
detect(env) {
return Boolean(env.BUDDY_WORKSPACE_ID);
},
Expand Down
4 changes: 2 additions & 2 deletions services/buildkite.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// https://buildkite.com/docs/builds/environment-variables

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const buildkiteProvider: IDetectProvider = {
const buildkiteProvider: DetectProvider = {
detect(env) {
return Boolean(env.BUILDKITE);
},
Expand Down
4 changes: 2 additions & 2 deletions services/circleci.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";
import prNumber from "../utils/prNumber.ts";

const circleciProvider: IDetectProvider = {
const circleciProvider: DetectProvider = {
detect(env) {
return Boolean(env.CIRCLECI);
},
Expand Down
4 changes: 2 additions & 2 deletions services/cirrus.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// https://cirrus-ci.org/guide/writing-tasks/#environment-variables

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const CIRRUS_CI_DASHBOARD = "https://cirrus-ci.com";

const cirrusProvider: IDetectProvider = {
const cirrusProvider: DetectProvider = {
detect(env) {
return Boolean(env.CIRRUS_CI);
},
Expand Down
4 changes: 2 additions & 2 deletions services/codebuild.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { branch, head } from "../utils/git.ts";
import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

// https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html

const codebuildProvider: IDetectProvider = {
const codebuildProvider: DetectProvider = {
detect(env) {
return Boolean(env.CODEBUILD_BUILD_ID);
},
Expand Down
4 changes: 2 additions & 2 deletions services/codefresh.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// https://codefresh.io/docs/docs/codefresh-yaml/variables#system-provided-variables

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const codefreshProvider: IDetectProvider = {
const codefreshProvider: DetectProvider = {
detect(env) {
return Boolean(env.CF_BUILD_ID);
},
Expand Down
4 changes: 2 additions & 2 deletions services/codeship.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// https://documentation.codeship.com/basic/builds-and-configuration/set-environment-variables/#default-environment-variables

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const codeshipProvider: IDetectProvider = {
const codeshipProvider: DetectProvider = {
detect(env): boolean {
return env.CI_NAME != null && env.CI_NAME === "codeship";
},
Expand Down
4 changes: 2 additions & 2 deletions services/drone.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// https://readme.drone.io/reference/environ

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const droneProvider: IDetectProvider = {
const droneProvider: DetectProvider = {
detect(env) {
return Boolean(env.DRONE);
},
Expand Down
4 changes: 2 additions & 2 deletions services/git.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { branch, head } from "../utils/git.ts";
import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

// FIXME
const gitProvider: IDetectProvider = {
const gitProvider: DetectProvider = {
detect(env) {
return Boolean(env.CI);
},
Expand Down
4 changes: 2 additions & 2 deletions services/github.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// https://developer.github.com/actions/creating-github-actions/accessing-the-runtime-environment/#environment-variables

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

function readJsonSync(path: string) {
const decoder = new TextDecoder("utf-8");
Expand Down Expand Up @@ -46,7 +46,7 @@ function getPrEvent(env: {
return { pr: undefined, branch: undefined };
}

const githubProvider: IDetectProvider = {
const githubProvider: DetectProvider = {
detect(env) {
return Boolean(env.GITHUB_ACTION);
},
Expand Down
4 changes: 2 additions & 2 deletions services/gitlab.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// https://docs.gitlab.com/ce/ci/variables/README.html

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const gitlabProvider: IDetectProvider = {
const gitlabProvider: DetectProvider = {
detect(env) {
return Boolean(env.GITLAB_CI);
},
Expand Down
4 changes: 2 additions & 2 deletions services/jenkins.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";
import { head } from "../utils/git.ts";

// https://wiki.jenkins.io/display/JENKINS/Building+a+software+project

const jenkinsProvider: IDetectProvider = {
const jenkinsProvider: DetectProvider = {
detect(env) {
return Boolean(env.JENKINS_URL);
},
Expand Down
7 changes: 4 additions & 3 deletions services/netlify.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
// https://docs.netlify.com/configure-builds/environment-variables/

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const netlifyProvider: IDetectProvider = {
const netlifyProvider: DetectProvider = {
detect(env) {
return env.NETLIFY === "true";
},
configuration(env) {
// deno-lint-ignore require-await
async configuration(env) {
const isPr = env.PULL_REQUEST === "true";

return {
Expand Down
4 changes: 2 additions & 2 deletions services/sail.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// https://sail.ci/docs/environment-variables

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const sailProvider: IDetectProvider = {
const sailProvider: DetectProvider = {
detect(env) {
return Boolean(env.SAILCI);
},
Expand Down
4 changes: 2 additions & 2 deletions services/semaphore.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { head } from "../utils/git.ts";
import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

// https://semaphoreci.com/docs/available-environment-variables.html

const semaphoreProvider: IDetectProvider = {
const semaphoreProvider: DetectProvider = {
detect(env) {
return Boolean(env.SEMAPHORE);
},
Expand Down
4 changes: 2 additions & 2 deletions services/shippable.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// http://docs.shippable.com/ci/env-vars/#stdEnv

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const shippableProvider: IDetectProvider = {
const shippableProvider: DetectProvider = {
detect(env) {
return Boolean(env.SHIPPABLE);
},
Expand Down
4 changes: 2 additions & 2 deletions services/teamcity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

const javaProperties = require("java-properties");
import { branch } from "../utils/git.ts";
import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const PROPERTIES_MAPPING = {
root: "teamcity.build.workingDir",
Expand Down Expand Up @@ -50,7 +50,7 @@ function getProperties(
);
}

const teamcityProvider: IDetectProvider = {
const teamcityProvider: DetectProvider = {
detect(env) {
return Boolean(env.TEAMCITY_VERSION);
},
Expand Down
4 changes: 2 additions & 2 deletions services/travis.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// https://docs.travis-ci.com/user/environment-variables#default-environment-variables

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const travisProvider: IDetectProvider = {
const travisProvider: DetectProvider = {
detect(env) {
return Boolean(env.TRAVIS);
},
Expand Down
4 changes: 2 additions & 2 deletions services/vsts.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// https://docs.microsoft.com/en-us/vsts/pipelines/build/variables
// The docs indicate that SYSTEM_PULLREQUEST_SOURCEBRANCH and SYSTEM_PULLREQUEST_TARGETBRANCH are in the long format (e.g `refs/heads/master`) however tests show they are both in the short format (e.g. `master`)

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const vstsProvider: IDetectProvider = {
const vstsProvider: DetectProvider = {
detect(env) {
return Boolean(env.BUILD_BUILDURI);
},
Expand Down
4 changes: 2 additions & 2 deletions services/wercker.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// http://devcenter.wercker.com/docs/environment-variables/available-env-vars#hs_cos_wrapper_name

import IDetectProvider from "../detectProvider.ts";
import type { DetectProvider } from "../types.ts";

const werckerProvider: IDetectProvider = {
const werckerProvider: DetectProvider = {
detect(env) {
return Boolean(env.WERCKER_MAIN_PIPELINE_STARTED);
},
Expand Down
2 changes: 1 addition & 1 deletion detectProvider.ts → types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export type Info = {
root?: string;
};

export default interface IDetectProvider {
export interface DetectProvider {
detect(env: { [index: string]: string }, cwd?: string): boolean;
configuration(env: { [index: string]: string }, cwd?: string): Promise<Info>;
}

0 comments on commit 2971915

Please sign in to comment.