{"id":29484040,"url":"https://github.com/jonigl/wait-for-netlify-jenkins","last_synced_at":"2026-02-09T15:32:49.662Z","repository":{"id":273888323,"uuid":"920317738","full_name":"jonigl/wait-for-netlify-jenkins","owner":"jonigl","description":"A Jenkins piepline that will wait until a Netlify Preview deploy has completed before continuing on","archived":false,"fork":false,"pushed_at":"2025-01-28T11:50:51.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-30T02:27:25.183Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonigl.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-21T23:55:21.000Z","updated_at":"2025-01-28T11:50:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"e49b06c4-1996-404b-9823-0238789d023f","html_url":"https://github.com/jonigl/wait-for-netlify-jenkins","commit_stats":null,"previous_names":["jonigl/wait-for-netlify-jenkins"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jonigl/wait-for-netlify-jenkins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonigl%2Fwait-for-netlify-jenkins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonigl%2Fwait-for-netlify-jenkins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonigl%2Fwait-for-netlify-jenkins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonigl%2Fwait-for-netlify-jenkins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonigl","download_url":"https://codeload.github.com/jonigl/wait-for-netlify-jenkins/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonigl%2Fwait-for-netlify-jenkins/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29270891,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T13:47:44.167Z","status":"ssl_error","status_checked_at":"2026-02-09T13:47:43.721Z","response_time":56,"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":[],"created_at":"2025-07-15T04:20:48.497Z","updated_at":"2026-02-09T15:32:49.646Z","avatar_url":"https://github.com/jonigl.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wait for Netlify - A Jenkins Pipeline ⏱️\n\n## Overview\nAre you using Lighthouse, Cypress, or other testing tools that depend on Netlify Preview URLs? This Jenkins pipeline ensures your URL is fully available before running critical tasks.\n\n## Workflow Diagram\n```mermaid\nsequenceDiagram\n    participant Dev as Developer\n    participant GH as GitHub\n    participant Jenkins as Jenkins Pipeline\n    participant Netlify as Netlify\n    \n    Dev-\u003e\u003eGH: Push code / Open PR\n    GH-\u003e\u003eJenkins: Trigger Webhook\n    Jenkins-\u003e\u003eJenkins: Validate Parameters\n    Jenkins-\u003e\u003eNetlify: Construct Preview URL\n    Netlify--\u003e\u003eJenkins: Generate Deploy Preview\n    \n    Jenkins-\u003e\u003eJenkins: Wait for URL Availability\n    alt URL Available\n        Jenkins-\u003e\u003eJenkins: Run E2E Tests\n        alt Tests Pass\n            Jenkins-\u003e\u003eGH: Set Success Status\n        else Tests Fail\n            Jenkins-\u003e\u003eGH: Set Failure Status\n        end\n    else URL Unavailable\n        Jenkins-\u003e\u003eGH: Set Error Status\n    end\n    \n    Note over Jenkins: URL Detection Logic\n    Note over Jenkins: Retry Mechanism\n    Note over Jenkins: Configurable Timeout\n```\n\n## Motivation\nStreamline the process of running End-to-End (E2E) tests against Netlify preview deployments, ensuring that tests are only executed when the preview URL is fully available and responsive.\n\n## Prerequisites\n- Jenkins GitHub Plugin installed\n- GitHub Webhook Configuration\n  - Manual Webhook Setup\n  - Reference Guides:\n    - [Jenkins GitHub Plugin Documentation](https://plugins.jenkins.io/github/#plugin-content-manual-mode)\n    - [GitHub Webhook Delivery Management](https://docs.github.com/en/webhooks/using-webhooks/handling-webhook-deliveries#update-the-webhook-url)\n\n### Webhook Configuration Steps\n1. In your GitHub repository, navigate to Settings \u003e Webhooks\n2. Add Jenkins webhook URL\n3. Choose events to trigger the webhook (e.g., Push, Pull Request)\n4. Ensure Jenkins can receive and process webhook payloads\n\n## Key Features\n- Automatic PR and branch preview URL detection\n- URL availability verification\n- Configurable deployment settings\n- Flexible error handling\n- Placeholder stages for E2E testing integration\n\n## Parameters\n- `SITE_NAME`: Netlify site name\n- `BRANCH_NAME`: Branch or PR name\n- `IS_PR`: Automatic PR detection\n- `MAX_TIMEOUT`: URL availability wait time\n- `BASE_PATH`: Preview URL base path\n- `FAIL_ON_ERROR`: Control pipeline behavior on URL failure\n\n## URL Construction\n- PR deployments: `https://deploy-preview-{PR_NUMBER}--{SITE_NAME}.netlify.app`\n- Branch deployments: `https://{sanitized_branch_name}--{SITE_NAME}.netlify.app`\n\n## Installation\n- Just copy the [pipeline script](Jenkinsfile) to your Jenkins pipeline configuration\n\n## Customization\n- Adapt E2E test stages to your testing framework\n- Modify timeout and error handling as needed\n\n## Troubleshooting\n- Verify webhook URL is correct and accessible\n- Check Jenkins logs for webhook processing errors\n- Ensure network connectivity between GitHub and Jenkins\n\n## Inspired By\n[JakePartusch/wait-for-netlify-action](https://github.com/JakePartusch/wait-for-netlify-action)\n\n## License\nThis project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonigl%2Fwait-for-netlify-jenkins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonigl%2Fwait-for-netlify-jenkins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonigl%2Fwait-for-netlify-jenkins/lists"}