Drone

Continue Execution Past Error

Is there a way to specify a pipeline stage or group to not halt further testing? I have a bunch of tests that take a few minutes each that are run parallel, I also have a few groups of these tests that in turn run serially and these all run after a stage that takes a while. I’d like to gather as many errors as possible before marking a job as failed, without actually ignoring any failures.

My pipeline looks something like:

lint1:
  group: linters
lint2:
  group: linters

build-x86:
  group: build
build-aarch64:
  group: build

vmtest-x86:
  group: vmtests
vmtest-aarch64:
  group: vmtests

upload-test-assets:

provision-baremetal0-ubuntu14:
  group: baremetal0
provision-baremetal0-ubuntu16:
  group: baremetal0

provision-baremetal1-ubuntu14:
  group: baremetal1
....

check:
  commands:
  - ls *.failed && cat *.failed && exit 1

Where builds and uploads take a while, not to mention provisions of previous groups, and I’d like the job to continue and give me a report at the end. I’m handling it now by echo a message onto the shared workspace in each provision stage, but it would be nice if I could see the red X vs a green check for the stage.

We don’t have this capability today. But it sounds like something that would be a good candidate for the .drone.js file which is going to give more options for more complex logic. Good to know this use case, so we can consider in the .drone.js design.

I figured this would be the situation, thanks for confirming. I’ll follow .drone.js work more closely then.

Almost 2 years have passed, are there any updates? Is it still can only be archived using .dronejs?

since this thread was created 2 years ago, Drone has added support for parallel step execution [1]. If there are multiple pipeline steps running in parallel and one fails, the other parallel steps are allowed to complete. Furthermore, you always have the option to execute steps both on success and on failure using the when clause [2]. So it seems you should be able to achieve something similar to what the op was requesting.

[1] https://docs.drone.io/pipeline/docker/syntax/parallelism/
[2] https://docs.drone.io/pipeline/docker/syntax/conditions/#by-status