I'm using pre-commit's check-yaml hook and also used the bitbucket pipeline validator to check this. Both report a problem with the last line
- step: &test
name: Run Unit Tests
- echo "DATE: $(date -Iseconds) UTC_TIME: $(date "+%s") GIT_HASH: $BITBUCKET_COMMIT"
- echo ": : "
check-yaml reports that the second colon "mapping values are not allowed in this context". Same error if you comment out the first echo step, and leave the second.
bitbucket pipeline validator reports "bad indentation of a sequence entry". Same error if you comment out the first echo step, and leave the second.
This shell code originally was in a bash script and runs fine, but including the shell code directly into the bitbucket-pipeline.yml creates errors. Is this caused by validators that cannot handled quoted strings?
I went back to using a bash script called from the pipeline. In my experience, the more you can put into a script (bash, python, etc) rather than literal commands in the bitbucket-pipelines.yml the better. Benefits include:
- execution of the scripts in your development environment (faster modify-test-fix cycle) and other places (git-hooks)
- more code reuse as the bitbucket-pipelines validator stops validating when it finds a step definition
- fewer dependencies on yaml formatting for long wrapped steps
I am even considering replacing the use of atlassian provided pipelines for aws because they use environment variables instead of aws cli settings. That alone lead to many frustrating days.
Beginning on April 4th, we will be implementing push limits. This means that your push cannot be completed if it is over 3.5 GB. If you do attempt to complete a push that is over 3.5 GB, it will fail...