Description
AlloyCI is a Continuous Integration, Deployment, and Delivery coordinator,
written in Elixir, that takes advantage of the GitLab CI Runner, and its
capabilities as executor.
It aims to bridge the gap between GitLab's CI runner and GitHub. GitLab's
CI runner is tightly coupled with GitLab, so it is not possible to use one of
these runners from a GitHub codebase.
With AlloyCI you will be able to register a GitLab CI runner to the platform,
connect it to one of your GitHub repositories, and have it run your CI and
CD pipelines.
AlloyCI will report the status of your pipelines to your pull requests and
branches, so you can always know their status, just like any other CI service.
AlloyCI alternatives and similar packages
Based on the "Applications" category.
Alternatively, view AlloyCI alternatives based on common mentions on social networks and blogs.
-
Logflare
Never get surprised by a logging bill again. Centralized structured logging for Cloudflare, Vercel, Elixir and Javascript. -
CaptainFact
🔎 CaptainFact - API. The one that serves and process all the data for https://captainfact.io -
Startup Job
An app to search startup jobs scraped from websites written in Elixir, Phoenix, React and styled-components. -
Exon
Exon is a “mess manager” developed in Elixir and provides a simple API to manage & document your stuff. -
medex
Medical Examination - application for register health check callbacks and represent their state via HTTP. -
chat
💬 CHAT: Instant Messenger. ISO/IEC: 20922; ITU/IETF: 3394, 3565, 5280, 5480, 5652, 5755 8551, X.509, CMS, PKCS-10, PCKS-7, OCSP, LDAP, DNS; ANSI: X9-42, X9-62, X25519, X488; NIST: SECP384r1. -
majremind
A self-maintained database of your updated server which tells you which one needs to be updated.
InfluxDB - Purpose built for real-time analytics at any scale.
Do you think we are missing an alternative of AlloyCI or a related project?
Popular Comparisons
README
Alloy CI
AlloyCI is a Continuous Integration, Deployment, and Delivery coordinator, written in Elixir, that takes advantage of the GitLab CI Runner, and its capabilities as executor. It also provides its own runner, the Alloy Runner, which is a fork of the GitLab CI Runner, with extra capabilities.
It aims to bridge the gap between GitLab's CI runner and GitHub. GitLab's CI runner is tightly coupled with GitLab, so it is not possible to use one of these runners from a GitHub codebase.
With AlloyCI you will be able to register one of the Runner projects to the platform, connect it to one of your GitHub repositories, and have it run your CI and CD pipelines.
AlloyCI will report the status of your pipelines to your pull requests, branches, and commits, so you can always know their status, just like any other CI service.
Goals
- To provide a clean bridge between GitHub and the GitLab CI runner
- To provide an alternative to other open source CI services
- To leverage the great open source project that is the GitLab CI runner
- To provide GitHub users with the same top class CI/CD that GitLab has, without having to switch to, or use GitLab, or paying insane amounts for inferior services
Stretch Goals
- To provide all the CI/CD/Pipelines functionality, currently available only to GitLab EE, for free
- To create a SaaS based on AlloyCI and provide a more cost effective alternative to the current CI service ecosystem
Features
- [x] Basic CI functionality:
- [x] Uses the [
.alloy-ci.yml
](doc/yaml/README.md) to define pipelines, jobs, and stages - [x] Can send the required build information to the runner for processing when requested
- [x] Can receive status updates from runner
- [x] Can report back to GitHub with the statuses
- [x] Can send notifications via email with the status of a pipeline
- [x] Can send notifications to Slack with the status of a pipeline
- [x] Uses the [
- [x] Extras
- [x] Build statistics per project
- [x] Build statistics per runner
- [x] Support for GitHub Enterprise
- [x] Advanced CI functionality
- [x] Can run jobs on multiple environments (using the [
image
feature](doc/docker/README.md) of the Docker executor.) - [x] Can use a local build cache to speed up jobs
- [x] Can build and test from pull requests coming from a fork
- [x] Can distinguish between tags and branches
- [x] Can make use of
only
andexcept
tags for jobs - [x] Can make use of secret variables stored on a per project basis
- [x] Can receive uploaded artifacts from runners
- [x] Can pass artifacts between build jobs as dependencies
- [x] Can manually specify dependent jobs via the
.alloy-ci.yml
file - [x] Presents the artifacts to the user in a nice way, and allows download
- [x] Can run jobs on multiple environments (using the [
- [ ] Deployment functionality
- [x] Can manually start deployments (manual actions)
- [x] Can do auto deploys
- [ ] Can make use of different environments
- [ ] Can start Review Apps
- [x] Auto Scaling Support (supported directly by the runner)
- [x] Can create runners on demand
- [x] Can destroy runners when not in use
Installation
Head over to our [documentation](doc/) for more information.
Contributing
Pull requests are always welcome!
- Clone the Repository
- Run
mix deps.get
to install all dependencies - Run
cd assets && yarn install
to install all Javascript dependencies - Make sure all environment variables are present. See [here](doc/README.md#configuration) for more info.
You can save them in a
.env
file, and source them before running anymix
task - Create and migrate the database with
mix ecto.setup
- Run tests with
make unit
or start a development server withmake run
- Code & send your PR when ready
Before contributing, please read our [Code of Conduct](CODE_OF_CONDUCT.md) and make sure you fully understand it. Violations will not be tolerated.
Copyright
Copyright (c) 2018 Patricio Cano. See [LICENSE](LICENSE) for details.
*Note that all licence references and agreements mentioned in the AlloyCI README section above
are relevant to that project's source code only.