GithubHelp home page GithubHelp logo

muskanmahajan37 / homebrew-simulation Goto Github PK

View Code? Open in Web Editor NEW

This project forked from osrf/homebrew-simulation

0.0 0.0 0.0 1.72 MB

Homebrew tap for osrf simulation software

License: Apache License 2.0

Ruby 100.00%

homebrew-simulation's Introduction

Build Status
macOS 10.15 GitHub action [![Build Status](brew test-bot)

homebrew-simulation

Homebrew tap for osrf simulation software

To use:

brew tap osrf/simulation
brew install ignition-citadel

Bottle status

Ignition Dome

Ignition Citadel

To build bottles

The https://build.osrfoundation.org jenkins instance is used for building bottles with the following job (configured in brew_release.dsl):

This jenkins job is triggered for pull requests when an administrator makes a comment on the pull request that includes the phrase build bottle. The job should appear in the GitHub build status interface for the latest commit:

GitHub build status interface screenshot

For example, #1157 was created after running our release.py script and this comment triggered the bottle build, resulting in a successful bottle upload and a4793387.

Bottle builds are not triggered automatically for every pull request for several reasons:

  • Not all pull requests require a bottle to be rebuilt (such as #1007 that added this text to the README)
  • Successful bottle builds result in binary artifacts being immediately uploaded to our hosting provider so pull requests should be screened for malicious intent by administrators before triggering a bottle build.
    • This process differs from the approach taken by homebrew/homebrew-core whose bottles are hosted at Bintray, which has a different publishing mechanism than s3. Files uploaded to Bintray are not immediately available for public download; they must first be published. If they are not published within 7 days of upload, they are automatically deleted. The homebrew-core CI jobs will build bottles for any incoming pull request, which will upload bottles directly to bintray, but these bottles will not be publicly available unless the pull request is merged by a homebrew maintainer within 7 days.

Troubleshooting

  • Does a new bottle need to be built for every homebrew pull request?

    • A new bottle is not needed for all pull requests. For example, updates to documentation or a formula's test do block do not change the installed binary and thus don't require a new bottle. Changing the tarball url, adding patches, or bumping the formula revision do require new bottles. If you aren't sure, just ask in the pull request.
  • Do I need to wait for the brew test-bot / test-bot GitHub action to succeed for starting a bottle build?

    • No, you don't need to wait. You can start the bottle build as soon as the pull request is opened.
  • When can I merge a pull request? Does CI need to be finished?

    • Yes, CI must be finished and successful. If a new bottle is needed, the generic-release-homebrew_triggered_bottle_builder job must be successful as well.
  • I commented build bottle, but it did not start a generic-release-homebrew_triggered_bottle_builder job.

  • I'm updating a Formula to build from a specific commit in a git repository. How do I get the sha256 for the tarball corresponding to that commit?

    • First, make sure that you have updated the url to use the commit hash that corresponds to the commit in the repository that you'd like to use. Also be sure to update the version, if it exists (in the example linked here, 20201028~c02cd0 is the part that needs to be modified: 20201028 is the date (year-month-day), and c02cd0 is the first 6 characters of the commit was used in the updated url).
    • Now, run the command wget <url>, where <url> is the updated url that was just mentioned. Once you have the tar file downloaded, run the command sha256sum <file>, replacing <file> with the file that was downloaded via wget. The sha256 will be printed to the console, which can then be used to update the Formula's sha256.
  • I ran the release.py script multiple times for the same release and commented build bottle on the pull request, but the bottle building job failed, with console output containing the text Warning: Formula reports different SHA256:.

    • It's possible that the tarball uploaded at the time the pull request was created was overwritten by a subsequent call to release.py (see ignition-tooling/release-tools#274). If so, update the sha256 field for the tarball (see #1156 and 57fa5defcce for an example).

Jenkins implementation details

The generic-release-homebrew_triggered_bottle_builder jenkins job currently builds bottles for macOS 10.13 high_sierra and 10.14 mojave using the following job configurations and the homebrew_bottle_creation.bash script:

If the bottle building job finishes without errors for each build configuration, it will trigger a subsequent repository_uploader_packages job that uploads the bottles to s3 and a generic-release-homebrew_pr_bottle_hash_updater job that commits the changes in bottle sha256 values to the pull request branch using this script.

homebrew-simulation's People

Contributors

adammw avatar adlarkin avatar ahcorde avatar ahundt avatar azeey avatar caguero avatar chapulina avatar clalancette avatar dhood avatar fredowski avatar gerkey avatar iche033 avatar j-rivero avatar jslee02 avatar mikepurvis avatar mjcarroll avatar nkoenig avatar osrfbuild avatar pietrodn avatar scpeters avatar shokman avatar sloretz avatar virtuald avatar wjwwood avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.