mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: Enable PR testing in Drone (#26189)
* Add Drone configuration
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add more steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add more steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Build front-end before testing it
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Upgrade grafana/build-container
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add packaging step
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Trigger on push
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove some steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Enable steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Install Dockerize
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use node image for test-frontend
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Increase number of test workers
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Make plugin installation depend on frontend tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Make integration tests depend on frontend tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use grafana/build-container also for front-end tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Upgrade dependencies in order to fix front-end tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Depend on es-check
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Dont' depend on tests before building front-end
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add more steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix packaging
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Simplify
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Try to build images
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix e2e tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Install netcat
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Include golangci-lint with grafana/build-container
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Build storybook and docs website
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix e2e tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use build image with root user
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drop CircleCI dependencies
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix e2e tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix e2e under Drone
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Execute e2e server separately
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use own plugin for building Docker images
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use Starlark to configure Drone
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add enterprise steps to pipeline
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add more enterprise steps to pipeline
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Maintain Yarn cache
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Build enterprise Docker images
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Build Ubuntu Docker images
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Refactor
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add Postgres integration test
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add MySQL integration test
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix integration tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Parameterize integration test DB connections
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Categorize integration tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use grabpl integration-tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove unintended change
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Disable Ubuntu Docker images for PR pipeline
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Regenerate yarn.lock
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Upgrade grabpl
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Restore Yarn cache before installing in grafana-enterprise
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use separate pipelines for OSS and enterprise
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Let OSS builds depend on tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Restore Go cache before building back-end
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Reduce number of variants built for PRs
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix building of Docker images
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Simplify logic
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Use Starlark
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Fix syntax error
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Convert .drone.star to YAML
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Upgrade AWS Go SDK
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Fix Go linting
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Undo irrelevant changes
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Revert "Undo irrelevant changes"
This reverts commit 5152f65972.
* Undo irrelevant changes
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* e2e: Support Circle
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove unused script
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* TypeScript fixes
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* TypeScript fixes
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove unused script
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* More Drone support
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove unused script
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix build on Circle
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove TODO comment
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
This commit is contained in:
@@ -161,14 +161,16 @@ export interface GithubPublishOptions {
|
||||
}
|
||||
|
||||
const githubPublishRunner: TaskRunner<GithubPublishOptions> = async ({ dryrun, verbose, commitHash }) => {
|
||||
if (!process.env['CIRCLE_REPOSITORY_URL']) {
|
||||
let repoUrl: string | undefined = process.env.DRONE_REPO_LINK || process.env.CIRCLE_REPOSITORY_URL;
|
||||
if (!repoUrl) {
|
||||
// Try and figure it out
|
||||
const repo = await execa('git', ['config', '--local', 'remote.origin.url']);
|
||||
if (repo && repo.stdout) {
|
||||
process.env.CIRCLE_REPOSITORY_URL = repo.stdout;
|
||||
repoUrl = repo.stdout;
|
||||
} else {
|
||||
throw new Error(
|
||||
'The release plugin requires you specify the repository url as environment variable CIRCLE_REPOSITORY_URL'
|
||||
'The release plugin requires you specify the repository url as environment variable DRONE_REPO_LINK or ' +
|
||||
'CIRCLE_REPOSITORY_URL'
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -190,7 +192,7 @@ const githubPublishRunner: TaskRunner<GithubPublishOptions> = async ({ dryrun, v
|
||||
process.env['GITHUB_USERNAME'] = DEFAULT_EMAIL_ADDRESS;
|
||||
}
|
||||
|
||||
const parsedUrl = gitUrlParse(process.env['CIRCLE_REPOSITORY_URL']);
|
||||
const parsedUrl = gitUrlParse(repoUrl);
|
||||
const githubToken = process.env['GITHUB_ACCESS_TOKEN'];
|
||||
const githubUser = parsedUrl.owner;
|
||||
|
||||
|
||||
@@ -19,26 +19,47 @@ const getJobFromProcessArgv = () => {
|
||||
return 'unknown_job';
|
||||
};
|
||||
|
||||
export const job = process.env.CIRCLE_JOB || getJobFromProcessArgv();
|
||||
export const job =
|
||||
(process.env.DRONE_STEP_NAME ? process.env.DRONE_STEP_NAME : process.env.CIRCLE_JOB) || getJobFromProcessArgv();
|
||||
|
||||
export const getPluginBuildInfo = async (): Promise<PluginBuildInfo> => {
|
||||
if (process.env.CIRCLE_SHA1) {
|
||||
if (process.env.CI === 'true') {
|
||||
let repo: string | undefined;
|
||||
let branch: string | undefined;
|
||||
let hash: string | undefined;
|
||||
let build: number | undefined;
|
||||
let pr: number | undefined;
|
||||
if (process.env.DRONE === 'true') {
|
||||
repo = process.env.DRONE_REPO_LINK;
|
||||
branch = process.env.DRONE_BRANCH;
|
||||
hash = process.env.DRONE_COMMIT_SHA;
|
||||
build = parseInt(process.env.DRONE_BUILD_NUMBER || '', 10);
|
||||
pr = parseInt(process.env.DRONE_PULL_REQUEST || '', 10);
|
||||
} else if (process.env.CIRCLECI === 'true') {
|
||||
repo = process.env.CIRCLE_REPOSITORY_URL;
|
||||
branch = process.env.CIRCLE_BRANCH;
|
||||
hash = process.env.CIRCLE_SHA1;
|
||||
build = parseInt(process.env.CIRCLE_BUILD_NUM || '', 10);
|
||||
const url = process.env.CIRCLE_PULL_REQUEST || '';
|
||||
const idx = url.lastIndexOf('/') + 1;
|
||||
pr = parseInt(url.substring(idx), 10);
|
||||
}
|
||||
|
||||
const info: PluginBuildInfo = {
|
||||
time: Date.now(),
|
||||
repo: process.env.CIRCLE_REPOSITORY_URL,
|
||||
branch: process.env.CIRCLE_BRANCH,
|
||||
hash: process.env.CIRCLE_SHA1,
|
||||
repo,
|
||||
branch,
|
||||
hash,
|
||||
};
|
||||
const pr = getPullRequestNumber();
|
||||
const build = getBuildNumber();
|
||||
if (pr) {
|
||||
info.pr = pr;
|
||||
}
|
||||
if (build) {
|
||||
info.number = build;
|
||||
}
|
||||
return Promise.resolve(info);
|
||||
return info;
|
||||
}
|
||||
|
||||
const branch = await execa('git', ['rev-parse', '--abbrev-ref', 'HEAD']);
|
||||
const hash = await execa('git', ['rev-parse', 'HEAD']);
|
||||
return {
|
||||
@@ -49,18 +70,24 @@ export const getPluginBuildInfo = async (): Promise<PluginBuildInfo> => {
|
||||
};
|
||||
|
||||
export const getBuildNumber = (): number | undefined => {
|
||||
if (process.env.CIRCLE_BUILD_NUM) {
|
||||
return parseInt(process.env.CIRCLE_BUILD_NUM, 10);
|
||||
if (process.env.DRONE === 'true') {
|
||||
return parseInt(process.env.DRONE_BUILD_NUMBER || '', 10);
|
||||
} else if (process.env.CIRCLECI === 'true') {
|
||||
return parseInt(process.env.CIRCLE_BUILD_NUM || '', 10);
|
||||
}
|
||||
|
||||
return undefined;
|
||||
};
|
||||
|
||||
export const getPullRequestNumber = (): number | undefined => {
|
||||
if (process.env.CIRCLE_PULL_REQUEST) {
|
||||
const url = process.env.CIRCLE_PULL_REQUEST;
|
||||
if (process.env.DRONE === 'true') {
|
||||
return parseInt(process.env.DRONE_PULL_REQUEST || '', 10);
|
||||
} else if (process.env.CIRCLECI === 'true') {
|
||||
const url = process.env.CIRCLE_PULL_REQUEST || '';
|
||||
const idx = url.lastIndexOf('/') + 1;
|
||||
return parseInt(url.substring(idx), 10);
|
||||
}
|
||||
|
||||
return undefined;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user