Home

Awesome

Omnibus Software

Build Status

Umbrella Project: Chef Foundation

Project State: Active

Issues Response Time Maximum: 14 days

Pull Request Response Time Maximum: 14 days

This repository contains shared software descriptions, for use by any Omnibus project that needs them.

This project is managed by the CHEF Release Engineering team. For more information on the Release Engineering team's contribution, triage, and release process, please consult the CHEF Release Engineering OSS Management Guide.

The main branch of this project corresponds to the main branch of omnibus!

Using Your Own Software Definitions

This repository is the collection of Chef Software's software definitions. We like that others get utility out of them, but they are not meant to be comprehensive collection of all software on the planet. For more information, please read Omnibus, a look forward on the Chef blog.

For more information on writing your own software definitions, please see the Omnibus README.

Versioning

This repository is versioned and tagged using the YY.MM.BUILD to allow folks to be able to access the state of the software definition at a specific point in time. We do however encourage folks to pull in the latest whenever possible.

Contributing

For information on contributing to this project please see our Contributing Documentation

Run Linux Tests in Docker

Run .expeditor/run_linux_tests.sh rake in the ruby image of your choice.

docker run -it --rm -v $PWD:/src -w /src ruby:2.7-buster .expeditor/run_linux_tests.sh rake

Testing On Ubuntu 18.04 via Docker

Interactive Testing

If you want to enter an interactive shell in a dockerized omnibus build environment on Ubuntu 18.04 you can run the following command.

docker-compose run --rm -e SOFTWARE=<SOFTWARE> -e VERSION=<VERSION> builder

# Example
docker-compose run --rm -e SOFTWARE=go -e VERSION=1.17.6 builder

Now you should be in a shell in the container ready to explore, modify or build. The omnibus-software repository will be mounted inside the container which makes it easy to edit code with your editor and test it in the container.

You can start the build by running the following command in your shell.

bundle exec omnibus build test

Omnibus git caching is enabled for the build so you can rerun the build command and it will use the cache for any software that was already successfully built. This can save a lot of time when troubleshooting software that has dependencies on other software that builds fine.

The following command will clean the omnibus project and purge the packages and caches.

bundle exec omnibus clean test --purge

The container will automatically be destroyed when you exit it without requiring any further cleanup.

Non-Interactive Testing

If you only want to run a build without an interactive shell you can set the CI environment variable as you see in the following command.

docker-compose run --rm -e SOFTWARE=<SOFTWARE> -e VERSION=<VERSION> -e CI=true builder

The container will automatically be destroyed when you exit it without requiring any further cleanup.

License & Copyright

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License..