{"id":21744014,"url":"https://github.com/telefonica/post-buildkite-plugin","last_synced_at":"2026-02-26T10:37:20.915Z","repository":{"id":54834558,"uuid":"149580486","full_name":"Telefonica/post-buildkite-plugin","owner":"Telefonica","description":"Post jobs recovery buildkite plugin (WIP)","archived":false,"fork":false,"pushed_at":"2023-01-04T13:37:35.000Z","size":216,"stargazers_count":2,"open_issues_count":3,"forks_count":2,"subscribers_count":39,"default_branch":"master","last_synced_at":"2025-04-13T05:07:44.680Z","etag":null,"topics":["buildkite-plugin","cdco"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Telefonica.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-20T08:56:17.000Z","updated_at":"2021-09-27T08:25:23.000Z","dependencies_parsed_at":"2023-02-02T14:15:18.158Z","dependency_job_id":null,"html_url":"https://github.com/Telefonica/post-buildkite-plugin","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Telefonica/post-buildkite-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telefonica%2Fpost-buildkite-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telefonica%2Fpost-buildkite-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telefonica%2Fpost-buildkite-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telefonica%2Fpost-buildkite-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Telefonica","download_url":"https://codeload.github.com/Telefonica/post-buildkite-plugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Telefonica%2Fpost-buildkite-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29856743,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T08:51:08.701Z","status":"ssl_error","status_checked_at":"2026-02-26T08:50:19.607Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["buildkite-plugin","cdco"],"created_at":"2024-11-26T07:09:45.077Z","updated_at":"2026-02-26T10:37:20.889Z","avatar_url":"https://github.com/Telefonica.png","language":"JavaScript","readme":"# Post buildkite plugin\n\nA [Buildkite plugin](https://buildkite.com/docs/agent/v3/plugins) for\nrunning pipeline **serial** steps conditionally when a step has succeed\nor failed\n\nThe `post` section defines one or more additional steps that are run upon\nthe completion of a command.\n\n`post` can support any of of the following post-condition blocks: `failure`, `success`.\nThese condition blocks allow the execution of serial steps inside each condition\ndepending on the completion status of the step.\n\n## Example\n\nThe following pipeline will execute `annotate.sh`, wait for completion, and then `cleanup.sh` only when the command fails\n\n```yml\nsteps:\n  - command: test.sh\n    plugins:\n      - telefonica/post#0.1.1:\n          post:\n            - when: failure\n              # steps is a string, note the `|`\n              steps: |\n                - command: email.sh\n                - wait\n                - command: clenaup.sh\n            - when: success\n              # steps is a string, note the `|`\n              steps: |\n                - command: slack.sh\n```\n\n## How it works\n\nThe plugin evaluates the `command` exit code, (via `post-command` hook) and starts\nadding one step after another dynamically using `buildkite-agent pipeline upload`\n\nWhen adding a pipeline dynamically, it's executed by buildkite\ndirectly after the step that added it.\nBut when a `wait` is found after a failure in this situation,\nthe execution will be aborted.\nThe plugin transform the pipeline and uses this trick to add\nsteps one after another, making possible to have a serial\npipeline (with `wait`) after failures.\n\n## Current limitations\n\n- Only `wait`, `command` and `plugins` are available as steps in the post section\n- Parallel steps in the steps sections are not allowed when using `wait`\n\nThis **does not** work\n\n```yml\nsteps:\n  - command: test.sh\n    plugins:\n      - telefonica/post#0.1.1:\n          post:\n            - when: failure\n              steps: |\n                - command: annotate.sh\n                - command: email.sh\n                - wait\n                - command: clenaup.sh\n```\n\nBut are allowed when not using `wait`\n\nThis work\n\n```yml\nsteps:\n  - command: test.sh\n    plugins:\n      - telefonica/post#0.1.1:\n          post:\n            - when: failure\n              steps: |\n                - command: annotate.sh\n                - command: email.sh\n                - command: clenaup.sh\n```\n\n## License\n\nCopyright 2018 [Telefónica](http://www.telefonica.com)\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelefonica%2Fpost-buildkite-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftelefonica%2Fpost-buildkite-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelefonica%2Fpost-buildkite-plugin/lists"}