Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/buildkite/migration
[Alpha Version] 🛠️ Based on Compat, a tool to transform pipelines from other CI providers to Buildkite
https://github.com/buildkite/migration
builkite cicd migration pipelines
Last synced: about 1 month ago
JSON representation
[Alpha Version] 🛠️ Based on Compat, a tool to transform pipelines from other CI providers to Buildkite
- Host: GitHub
- URL: https://github.com/buildkite/migration
- Owner: buildkite
- License: mit
- Created: 2023-06-20T13:00:37.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-08T16:53:03.000Z (about 1 month ago)
- Last Synced: 2024-11-08T17:42:08.681Z (about 1 month ago)
- Topics: builkite, cicd, migration, pipelines
- Language: Ruby
- Homepage:
- Size: 1.07 MB
- Stars: 8
- Watchers: 9
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Buildkite Migration tool [![Build status](https://badge.buildkite.com/5db82bf94b2c528cb9723cdd222b60baca00c6328265c8427c.svg)](https://buildkite.com/buildkite/migration-tool)
A tool to help kick start the transition of pipelines from other CI providers to Buildkite.
```shell
$ buildkite-compat examples/circleci/legacy.yml
---
steps:
- commands:
- "# No need for checkout, the agent takes care of that"
- pip install -r requirements/dev.txt
plugins:
- docker#v5.7.0:
image: circleci/python:3.6.2-stretch-browsers
agents:
executor_type: docker
key: build
```Note: Setting the environment variable `BUILDKITE_PLUGIN__VERSION` will override the default version of the plugins used. For example:
```shell
$ BUILDKITE_PLUGIN_DOCKER_VERSION=testing-branch buildkite-compat examples/circleci/legacy.yml
---
steps:
- commands:
- "# No need for checkout, the agent takes care of that"
- pip install -r requirements/dev.txt
plugins:
- docker#testing-branch:
image: circleci/python:3.6.2-stretch-browsers
agents:
executor_type: docker
key: build
```## Web Service/API
Buildkite Compat can also be used via a HTTP API using `puma` from the `app` folder of this repository.
You start the web UI with either of the following docker commands:
```sh
docker compose up webui
```Note: If you are using `docker run` you will have to override the entrypoint:
```shell
$ docker run --rm -ti -p 9292:9292 --entrypoint '' --workdir /app $IMAGE:$TAG puma --port 9292
```After that, you can access a simple web interface at http://localhost:9292
![Web UI](docs/images/web-ui.png)
You can also programatically interact with it (maybe even pipe the output directly to `buildkite-agent pipeline upload`!):
```shell
$ curl -X POST -F 'file=@app/examples/circleci/legacy.yml' http://localhost:9292
---
steps:
- commands:
- "# No need for checkout, the agent takes care of that"
- pip install -r requirements/dev.txt
plugins:
- docker#v5.7.0:
image: circleci/python:3.6.2-stretch-browsers
agents:
executor_type: docker
key: build
```## Translation results
Buildkite has its own suggested best practices, these may differ to those from other providers, check out the [Buildkite Docs](https://buildkite.com/docs) for more information. Review and use the results of this tool as the basis towards Buildkite adoption, the output of the migration tool is a guide and manual editing is likely to be required.
## Further Details
Further information on the currently supported attributes of CI provider pipeline translation to Buildkite pipelines can be found below (within the `/docs` directory):
- [Bitbucket Pipelines](/docs/Bitbucket.md)
- [CircleCI](/docs/CircleCI.md)
- [GitHub Actions](/docs/GHA.md)