|
| 1 | +<!-- |
| 2 | +IMPORTANT: |
| 3 | +
|
| 4 | +This repository contains configuration for what users see when they click on the `Actions` tab and the setup page for Code Scanning. |
| 5 | +
|
| 6 | +It is not: |
| 7 | +* A playground to try out scripts |
| 8 | +* A place for you to create a workflow for your repository |
| 9 | +--> |
| 10 | + |
| 11 | +## Pre-requisites |
| 12 | + |
| 13 | +- [ ] Prior to submitting a new workflow, please apply to join the GitHub Technology Partner Program: [partner.github.com/apply](https://partner.github.com/apply?partnershipType=Technology+Partner). |
| 14 | + |
| 15 | +--- |
| 16 | + |
| 17 | +### **Please note that at this time we are only accepting new starter workflows for Code Scanning. Updates to existing starter workflows are fine.** |
| 18 | + |
| 19 | +--- |
| 20 | + |
| 21 | +## Tasks |
| 22 | + |
| 23 | +**For _all_ workflows, the workflow:** |
| 24 | + |
| 25 | +- [ ] Should be contained in a `.yml` file with the language or platform as its filename, in lower, [_kebab-cased_](https://en.wikipedia.org/wiki/Kebab_case) format (for example, [`docker-image.yml`](https://github.com/actions/starter-workflows/blob/main/ci/docker-image.yml)). Special characters should be removed or replaced with words as appropriate (for example, "dotnet" instead of ".NET"). |
| 26 | +- [ ] Should use sentence case for the names of workflows and steps (for example, "Run tests"). |
| 27 | +- [ ] Should be named _only_ by the name of the language or platform (for example, "Go", not "Go CI" or "Go Build"). |
| 28 | +- [ ] Should include comments in the workflow for any parts that are not obvious or could use clarification. |
| 29 | + |
| 30 | +**For _CI_ workflows, the workflow:** |
| 31 | + |
| 32 | +- [ ] Should be preserved under [the `ci` directory](https://github.com/actions/starter-workflows/tree/main/ci). |
| 33 | +- [ ] Should include a matching `ci/properties/*.properties.json` file (for example, [`ci/properties/docker-publish.properties.json`](https://github.com/actions/starter-workflows/blob/main/ci/properties/docker-publish.properties.json)). |
| 34 | +- [ ] Should run on `push` to `branches: [ $default-branch ]` and `pull_request` to `branches: [ $default-branch ]`. |
| 35 | +- [ ] Packaging workflows should run on `release` with `types: [ created ]`. |
| 36 | +- [ ] Publishing workflows should have a filename that is the name of the language or platform, in lower case, followed by "-publish" (for example, [`docker-publish.yml`](https://github.com/actions/starter-workflows/blob/main/ci/docker-publish.yml)). |
| 37 | + |
| 38 | +**For _Code Scanning_ workflows, the workflow:** |
| 39 | + |
| 40 | +- [ ] Should be preserved under [the `code-scanning` directory](https://github.com/actions/starter-workflows/tree/main/ci). |
| 41 | +- [ ] Should include a matching `code-scanning/properties/*.properties.json` file (for example, [`code-scanning/properties/codeql.properties.json`](https://github.com/actions/starter-workflows/blob/main/code-scanning/properties/codeql.properties.json)), with properties set as follows: |
| 42 | + - [ ] `name`: Name of the Code Scanning integration. |
| 43 | + - [ ] `organization`: Name of the organization producing the Code Scanning integration. |
| 44 | + - [ ] `description`: Short description of the Code Scanning integration. |
| 45 | + - [ ] `categories`: Array of languages supported by the Code Scanning integration. |
| 46 | + - [ ] `iconName`: Name of the SVG logo representing the Code Scanning integration. This SVG logo must be present in [the `icons` directory](https://github.com/actions/starter-workflows/tree/main/icons). |
| 47 | +- [ ] Should run on `push` to `branches: [ $default-branch, $protected-branches ]` and `pull_request` to `branches: [ $default-branch ]`. We also recommend a `schedule` trigger of `cron: $cron-weekly` (for example, [`codeql.yml`](https://github.com/actions/starter-workflows/blob/c59b62dee0eae1f9f368b7011cf05c2fc42cf084/code-scanning/codeql.yml#L14-L21)). |
| 48 | + |
| 49 | +**Some general notes:** |
| 50 | + |
| 51 | +- [ ] This workflow must _only_ use actions that are produced by GitHub, [in the `actions` organization](https://github.com/actions), **or** |
| 52 | +- [ ] This workflow must _only_ use actions that are produced by the language or ecosystem that the workflow supports. These actions must be [published to the GitHub Marketplace](https://github.com/marketplace?type=actions). We require that these actions be referenced using the full 40 character hash of the action's commit instead of a tag. Additionally, workflows must include the following comment at the top of the workflow file: |
| 53 | + ``` |
| 54 | + # This workflow uses actions that are not certified by GitHub. |
| 55 | + # They are provided by a third-party and are governed by |
| 56 | + # separate terms of service, privacy policy, and support |
| 57 | + # documentation. |
| 58 | + ``` |
| 59 | +- [ ] Automation and CI workflows should not send data to any 3rd party service except for the purposes of installing dependencies. |
| 60 | +- [ ] Automation and CI workflows cannot be dependent on a paid service or product. |
0 commit comments