Currently IceCI does not support parallel pipeline execution. This feature is considered for future versions.
step is executed in a container, running as a pod in Kubernetes cluster. Every
step has the same volume mounted in the
/workspace directory inside the container running the
step. This volume contains source code related to the Git event that occurred in the git repository. The volume is persistent across the whole pipeline and is isolated from other pipelines.
If you create files in the
/workspace directory in any of your steps during pipeline execution, all the subsequent steps will have access those files.
steps: - name: step1 containerRun: image: busybox script: "echo 'Hello world!'" - name: step2 containerRun: image: busybox script: | echo "step 2" env
An example of generating a file and then accessing it in next
steps: - name: generate-date containerRun: image: busybox script: "date > date.log" - name: print-date containerRun: image: busybox script: "cat date.log"
Here’s an example of passing environment variables to a container.
steps: - name: env-test containerRun: image: busybox script: "printenv ENV_VAR_1" environment: - name: ENV_VAR_1 value: test-value
As you can see, the environment variable value is hardcoded into the pipeline. This is fine if your build configuration doesn’t contain passwords or other sensitive data. For more information on how to manage sensitive data in
IceCI see secrets section.
Here’s an example of mounting files from a secret in a container.
steps: - name: file-test containerRun: image: busybox script: "cat /mnt/file" files: - path: /mnt/file fromSecret: file-secret
The content of a file can’t be defined inline. Every file has to have a reference to a secret, from which the content is pulled.
You can control which Git events trigger the execution of your step, here’s an example.
steps: - name: step1 when: event: ["commit"] branch: ["master"] skipBranch: ["development", "feature-*"] containerRun: image: busybox script: "echo 'Hello world!'"