github_bot/src/env.ts (99 lines of code) (raw):

/* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License * 2.0 and the Server Side Public License, v 1; you may not use this file except * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ export type Patterns = Array<string | RegExp>; export interface Label { id?: number; name?: string; patterns: Patterns; } export interface User { id?: number; name: string; email: string; } export interface Env { repo: { repo: string; owner: string; }; user: { bot: User; }; branch: { /** * Targeted base branches to trigger builds */ base: Patterns; }; label: { buildkite: Label; skip: Label; ciApproved: Label; }; commitPattern: { skip: Patterns; updateScreenshots: Patterns; }; } const devEnv: Env = { repo: { owner: 'elastic', repo: 'datavis-ci-test', }, user: { bot: { id: 107651659, name: 'elastic-datavis-test[bot]', email: '107651659+elastic-datavis-test[bot]@users.noreply.github.com', }, }, branch: { base: ['main', 'alpha', 'next', /\d+.\d+.\d+/, /\d+.\d+.x/, /\d+.x/, /buildkite-.+/], }, label: { buildkite: { name: 'ci:buildkite', patterns: [], }, skip: { patterns: ['ci:skip'], }, ciApproved: { patterns: ['ci:approved ✅'], }, }, commitPattern: { skip: ['[skip-ci]', '[skip ci]', '[ci skip]', '[ci-skip]'], updateScreenshots: ['[update-vrt]', '[vrt-update]', '[update-screenshots]', '[screenshots-update]'], }, }; const prodEnv: Env = { repo: { owner: 'elastic', repo: 'elastic-charts', }, user: { bot: { id: 98618603, name: 'elastic-datavis[bot]', email: '98618603+elastic-datavis[bot]@users.noreply.github.com', }, }, branch: { base: ['main', 'alpha', 'next', /\d+.\d+.\d+/, /\d+.\d+.x/, /\d+.x/], }, label: { buildkite: { name: 'ci:buildkite', patterns: [], }, skip: { patterns: ['ci:skip'], }, ciApproved: { patterns: ['ci:approved ✅'], }, }, commitPattern: { skip: ['[skip-ci]', '[skip ci]', '[ci skip]', '[ci-skip]'], updateScreenshots: ['[update-vrt]', '[vrt-update]', '[update-screenshots]', '[screenshots-update]'], }, }; /** * Returns env config to test locally with test app and test repo */ export const getEnv = (isDev: boolean): Env => { return isDev ? devEnv : prodEnv; };