[skip ci] doesn't skip holds?


#1

I recently learned about the “[skip ci]” “feature” that allows a committer to skip CI if they put “[skip ci]” or “[ci skip]” in their commit message. And it follows that commit through merges. I understand the desire for such a “feature”, though I am not sure it is a good idea – just because you can, doesn’t mean you should… I especially don’t like the fact that it follows merges.

But now I am noticing that it does not apply to approval type jobs, which seems weird.

Is there a way we can prevent the skip from following through a merge?

Is the fact that the skip doesn’t apply to approval jobs intentional?

Is there a way we can run a workflow that has been skipped, especially after the merge?

Thanks!


#2

Could you share your config here?


#3

I can’t really do that. Are you saying that it should apply to approval type jobs?


#4

Here’s a small demo project with code:
https://circleci.com/gh/nroose/workflows/circleci-demo-ruby-sinatra

version: 2
jobs:
  build:
    working_directory: ~/circleci-demo-ruby-sinatra
docker:
      - image: circleci/ruby:2.4.1
        environment:
          TESTOPTS: "--ci-dir=/tmp/test-results"
          APP_ENV: test
steps:
      - checkout

      # Restore bundle cache
      - type: cache-restore
        key: sinatra-demo-{{ checksum "Gemfile.lock" }}

      # Bundle install dependencies
      - run: bundle install --path vendor/bundle

      # Store bundle cache
      - type: cache-save
        key: sinatra-demo-{{ checksum "Gemfile.lock" }}
        paths:
          - vendor/bundle

      # Run minitest
      - type: shell
    command: bundle exec rake

      # Save artifacts
      - type: store_test_results
    path: /tmp/test-results

workflows:
  version: 2

  conditional-build:
    jobs:
      - wait:
          type: approval

      - build:
          requires:
            - wait