Giter Site home page Giter Site logo

spc's Introduction

Semaphore Pipeline Compiler (SPC)

Tooling for compiling and evaluating pipelines on Semaphore 2.0.

Release Process

Releases are built by Sempahore for every git tag on Github. To initialize the release process:

  1. go to the project root
  2. Run make tag.patch (or make tag.minor, or make tag.major) to bump and push a new tag to Github
  3. Semaphore will take over, and execute the .semaphore/release.yml.

On Sempahore, we use GoReleaser to create releases. Its configuration is stored in .goreleaser.yml.

spc's People

Contributors

shiroyasha avatar damjanbecirovic avatar mattrym avatar lucaspin avatar

Stargazers

Andrew Johnson avatar

Watchers

James Cloos avatar Dejan K avatar  avatar  avatar

spc's Issues

Feature request - ignore keys

Hi, is it possible to add some kind of syntax to allow semaphore to ignore specific keys in pipeline configuration
example and usecase
https://www.netways.de/en/blog/2019/11/21/gitlab-ci-yaml-write-less-with-anchors-extends-and-hidden-keys/
https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd

Currently if I try to use this pattern semaphore will throw this error

Unprocessable YAML file.
Error: [{"Schema does not allow additional properties.", "#/.defaults"}]

[Feature Request] Support value property in env_var for promotions

The current solution is to use the options with default_value, but that leads to awkward dx inside the actual semaphore CI (you see only one option in the option list when promoting)

image

It would be much cleaner to just support value so that the options field could hide and also free text is also supported.

promotions:
  - name: Upload to Saucelabs
    pipeline_file: saucelabs.yml
    auto_promote:
      when: "result = 'passed'"
    parameters:
      env_vars:
        # This works 
        - name: BUILD_TARGET
          required: true
          default_value: beta
          options:
            - beta
        # This breaks with the following error
        # Unprocessable YAML file.
        # Error: [{"Schema does not allow additional properties.", "#/promotions/env_vars/1/value"}]
        - name: PLATFORM
          value: android

[Feature Request] environment variable support in when conditions

when doesn't currently support environment variables. The current workaround is to add env var checks inside our own scripts.

if [ SOME_ENV_VAR = true ]; then run commands; else echo "skip commands"; fi

It would be very useful to have access to env variables in the when condition so that these scripts do not have to be more complicated.

...
blocks:
  - name: 'Distribute iOS build'
    skip: 
      when: $PLATFORM == 'android'
...

If other env notation is not usable, it could be at the same level as the change_in function:

...
blocks:
  - name: 'Distribute Android build'
    skip: 
      when: "env(PLATFORM) == 'ios'"
...

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.