Skip to content

Latest commit

 

History

History
103 lines (71 loc) · 2.21 KB

README.rst

File metadata and controls

103 lines (71 loc) · 2.21 KB

Github Matrix

WARNING!

Because of Visa and Mastercard sanctions against Russua, I'm unable to pay for Heroku hosting anymore and soon server will stop working on the domain github-actions.40ants.com

Goals

This project's aim is to give all repositories tested by Github Actions a way to show the full build status.

Especially it is useful when tests are running under a "matrix" combinations.

Try it!

Go to the https://github-actions.40ants.com/, enter your library's URL and see get your image!

A Few Previews

Here is an example of the render, when matrix has only two variables: os and lisp implementation:

matrix:
  lisp:
    - sbcl-bin
    - ccl-bin
  os:
    - ubuntu-latest
    - macos-latest

docs/images/minimal.png

And this is how more complex matrix is rendered:

matrix:
  os:
    - ubuntu-latest
    - macos-latest
  quicklisp-dist:
    - quicklisp
    - ultralisp
  lisp:
    - sbcl-bin
    - ccl-bin
    - ecl
    - abcl
    - allegro
    - clisp
    - cmucl

docs/images/complex.png

How to test locally

(ql:quickload :app)

(app/server:start 8081 :debug t)

TODO

  • Support more grid layout for workflows with multiple combinations.
  • Add a special webhook which will be able to add an image into the pull-requests. This image should be rendered in a special mode and compare pull's results with results of the main branch. Diffrencies should be highlighted. This will make visible for which matrix combinations a pull request makes fixes/breaks tests.

Known Issues

  • Badge generator does not work for jobs with custom names like:

    test:
      name: ${{ matrix.lisp }} on ${{ matrix.os }}
      runs-on: ${{ matrix.os }}
      strategy:
        matrix:
          lisp: [sbcl-bin, ccl-bin]
          os: [ubuntu-latest]

    This is because github's API does not returns a matrix state for a run and we have to parse run's name to extract matrix values. Name should have this form instead: test (sbcl-bin, ubuntu-latest).