This public repository is read-only and no longer maintained.
This repo contains examples for InfraBox, a continuous integration system.
To be able to run the examples locally you should install infraboxcli. See How to install infraboxcli for instructions.
To run jobs locally cd into a directory which contains a infrabox.json file. Now simply run
infrabox run
This will now run all the jobs defined in infrabox.json. If you want to run only a single job use:
infrabox run <job-name>
For more details on how to run jobs see the infraboxcli documentation
- Hello World: Run you first hello world job on InfraBox
- A simple C++ project: Compile and test a simple C++ program
- Upload your testresult: If you run tests in your job you can get the results visualized by InfraBox
- Create custom badges: An easy way of creating for your jobs
- Docker build arguments: Set Docker build arguments for your jobs
- Caching: Cache data between runs to speed up your builds
- Timeouts: Set timeouts for your jobs
- Environment Variables: Set environment vars for your jobs
- Secrets: How to handle passwords and other sensitive data
- Push Images
- Push to Docker registry: Deploy your docker images to a registry
- Push to GCR: Deploy your docker images to a GCR
- Job Dependencies: Run multiple jobs with dependencies
- Transfer data: Transfer data between your jobs
- Docker Compose: Use docker compose in your job to run multiple containers
- Workflows: Split up your job graph into multiple workflows
- GIT Workflows: Included external workflows into your build
- Services
- Kubernetes Namespace: Provision a Kubernetes namespaces for your tests
- Kubernetes Cluster (GKE): Provision a GKE Kubernetes Cluster for your tests
- Kubernetes Gardener: Provision a Gardener Kubernetes Cluster for your tests
- Dynamic Workflows: Modify your job graph at runtime for full flexibility
- Build and use Image: In the same build
- Access git information: Access the cloned git repository
- Slack: Report your build status
See also Job Definitions for documentation about using all the different job types.
If you need help please post your questions to Stack Overflow. In case you found a bug please open a Github Issue. Follow us on Twitter: @Infra_Box or have look at our Slack channel infrabox.slack.com.
Please have a look at the Docker Best Practice Guide. It contains several useful tips on how to write good Dockerfiles.
In general it's a good idea to keep your containers small. So only install the libraries and components to really need. If possible use alpine images, because they are much smaller then the ubuntu images. This saves you time, because less data has to be downloaded for every job.
Copyright (c) 2018 SAP SE or an SAP affiliate company. All rights reserved. This project is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file.