Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mistermx/crossplanereleaser
Like Goreleaser but for Crossplane packages
https://github.com/mistermx/crossplanereleaser
build-tool ci crossplane crossplane-configuration crossplane-provider
Last synced: about 1 month ago
JSON representation
Like Goreleaser but for Crossplane packages
- Host: GitHub
- URL: https://github.com/mistermx/crossplanereleaser
- Owner: MisterMX
- License: apache-2.0
- Created: 2024-02-06T16:28:23.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2024-03-28T16:13:04.000Z (9 months ago)
- Last Synced: 2024-06-21T08:05:17.851Z (6 months ago)
- Topics: build-tool, ci, crossplane, crossplane-configuration, crossplane-provider
- Language: Go
- Homepage:
- Size: 55.7 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# XPReleaser
Like [Goreleaser](https://github.com/goreleaser/goreleaser) but for Crossplane packages.
# Usage
Build and push artifacts to a registry:
```bash
crossplanereleaser release
```To just build artifacts:
```bash
crossplanereleaser build
```An example `.crossplanereleaser.yaml` config can look like this
```yaml
project_name: my-project
dist: dist/my-projectbuilds:
- id: composition-package
dir: package/compositions
examples: examples
- id: function-package
dir: package/function
examples: "IGNORE"
# Use a prebuilt image tar that contains the function binary, i.e. by Ko
runtime_image_tar: dist/function-base-image.tarpushes:
- build: composition-package
image_templates:
- "my-registry.com/my-project/package-compositions:{{ .Tag }}"
- "my-registry.com/my-project/package-compositions:{{ .FullCommit }}"
- id: function # Used to manually filter for images to be pushed
build: function-package
image_templates:
- "my-registry.com/my-project/package-function:{{ .Tag }}"
- "my-registry.com/my-project/package-function:{{ .FullCommit }}"
```# Requirements
Crossplanereleaser does not deal packages by itself but instead uses external
tools for that which need to be available in your system:* `git` to generate package meta information.
* [`crank`](https://github.com/crossplane/crossplane/tree/master/cmd/crank)
for package building
* [`crane`](https://github.com/google/go-containerregistry/tree/main/cmd/crane)
for image publishing.