cuelang.org/go@v0.10.1/internal/ci/base/base.cue (about) 1 // Copyright 2022 The CUE Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // package base is a collection of workflows, jobs, stes etc that are common to 16 // CUE projects and the workflows they specify. The package itself needs to be 17 // instantiated to parameterise many of the exported definitions. 18 // 19 // For example a package using base would do something like this: 20 // 21 // package workflows 22 // 23 // import "cuelang.org/go/internal/ci/base" 24 // 25 // // Create an instance of base 26 // _base: base & core { params: { 27 // // any values you need to set that are outside of core 28 // ... 29 // }} 30 // 31 package base 32 33 import ( 34 "strings" 35 ) 36 37 // Package parameters 38 githubRepositoryPath: *(URLPath & {#url: githubRepositoryURL, _}) | string 39 githubRepositoryURL: *("https://github.com/" + githubRepositoryPath) | string 40 gerritHubHostname: "review.gerrithub.io" 41 gerritHubRepositoryURL: *("https://\(gerritHubHostname)/a/" + githubRepositoryPath) | string 42 trybotRepositoryPath: *(githubRepositoryPath + "-" + trybot.key) | string 43 trybotRepositoryURL: *("https://github.com/" + trybotRepositoryPath) | string 44 45 defaultBranch: *"master" | string 46 testDefaultBranch: *"ci/test" | _ 47 protectedBranchPatterns: *[defaultBranch] | [...string] 48 releaseTagPrefix: *"v" | string 49 releaseTagPattern: *(releaseTagPrefix + "*") | string 50 51 botGitHubUser: string 52 botGitHubUserTokenSecretsKey: *(strings.ToUpper(botGitHubUser) + "_GITHUB_PAT") | string 53 botGitHubUserEmail: string 54 botGerritHubUser: *botGitHubUser | string 55 botGerritHubUserPasswordSecretsKey: *(strings.ToUpper(botGitHubUser) + "_GERRITHUB_PASSWORD") | string 56 botGerritHubUserEmail: *botGitHubUserEmail | string 57 58 workflowFileExtension: ".yml" 59 60 linuxMachine: string 61 62 codeReview: #codeReview & { 63 github: githubRepositoryURL 64 gerrit: gerritHubRepositoryURL 65 } 66 67 // Define some shared keys and human-readable names. 68 // 69 // trybot.key and unity.key are shared with 70 // github.com/cue-sh/tools/cmd/cueckoo. The keys are used across various CUE 71 // workflows and their consistency in those various locations is therefore 72 // crucial. As such, we assert specific values for the keys here rather than 73 // just deriving values from the human-readable names. 74 // 75 // trybot.name is by the trybot GitHub workflow and by gerritstatusupdater as 76 // an identifier in the status updates that are posted as reviews for this 77 // workflows, but also as the result label key, e.g. "TryBot-Result" would be 78 // the result label key for the "TryBot" workflow. This name also shows up in 79 // the CI badge in the top-level README. 80 trybot: { 81 key: "trybot" & strings.ToLower(name) 82 name: "TryBot" 83 } 84 85 unity: { 86 key: "unity" & strings.ToLower(name) 87 name: "Unity" 88 }