Skip to content
CONTRIBUTING.md 1.35 KiB
Newer Older
# Contributing

## Getting Started

- [Install](https://github.com/bazelbuild/bazelisk#installation) `bazelisk`
- Run `bazelisk test //...`
- Run `bazelisk test $(bazelisk query "attr(tags, '\bmanual\b', //...)")`

## GitLab Compatibility

GitLab CI components were experimental for a while.

In [GitLab 16.3][16.3] the folder structure for a named component looked like so:

```
├── template.yml
├── README.md
├── .gitlab-ci.yml
├── unit/
│   └── template.yml
└── integration/
    └── template.yml
```

In [16.5], the directory structure changed to:

```
├── README.md
├── .gitlab-ci.yml
└── templates/
    └── all-scans.yml
    └── secret-detection.yml
```

The old structure was [deprecated].

Until the GitLab instance is upgraded past 16.5 both structures need to be supported.

_Unfortunately_, a GitLab CI component **cannot be a symlink** so we must copy the content between
`templates/bazelisk.yml` and `bazelisk/template.yml`.

TODO: when gitlab.arm.com upgrades to 16.5+ remove this section and `bazelisk/template.yml`

[16.3]: https://archives.docs.gitlab.com/16.3/ee/ci/components/#directory-structure
[16.5]: https://docs.gitlab.com/16.5/ee/ci/components/#directory-structure
[deprecated]: https://docs.gitlab.com/16.5/ee/ci/components/#component-configurations-saved-in-any-directory-deprecated