.md
Markdown
(text/x-gfm)
# gitfoss-ci

GitFOSS CI is a continuous integration orchestraction app built in Crystal.  
It exposes a set of endpoints so the GitFOSS forge can interact with it.  

## Features

- Simple pipeline manifest file format (yaml): .gitfoss.ci

```yml
pipeline:
  image: alpine:latest
  stages:
    - name: test
      commands:
        - yarn install --dev-only
        - yarn test
      test_report:
        format: junit-coverage
        path: ./tests/coverage/
    - name: build
      env:
        - NODE_ENV=production
        - DATABASE_URL=$DATABASE_URL # from Env["DATABASE_URL"]
      commands:
        - yarn install
        - yarn generate
        - yarn build
      save_artefacts:
        - distributables:./dist/
    - name: deploy-staging
      manual: true
      commands:
        - ./scripts/deploy.sh --env=staging /app/dist/
      load_artefacts:
        - distributables:/app/dist/
    - name: deploy-prod
      manual: true
      commands:
        - ./scripts/deploy.sh --env=production /app/dist/
      load_artefacts:
        - distributables:/app/dist/
```

- Run containerized builds using Docker and specified image.
- Report logs in real-time during pipeline execution (streamed to the console).
- Report test results and coverage reports.
- Save artefacts (distributables) from each stage and make them available for download.
- Report pipeline execution status back to GitFOSS.
- More integrations with Slack, GitHub, and other tools in GitFOSS.

## Installation

```bash
$ git clone https://github.com/your-github-user/gitfoss-ci.git
$ cd gitfoss-ci
$ shards build
$ ./bin/gitfoss-ci [--flags] CMD [INPUT]
```

## Usage

TODO: Write usage instructions here

## Development

TODO: Write development instructions here

## Contributing

1. Fork it (<https://gitfoss.dev/ethicdevs/gitfoss-ci/fork>)
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request

## Contributors

- [Willi Wonka](https://gitfoss.dev/@willi.wonka38) - creator and maintainer