{"id":13942451,"url":"https://github.com/assertible/deployments","last_synced_at":"2025-07-31T00:33:03.223Z","repository":{"id":84924616,"uuid":"62849812","full_name":"assertible/deployments","owner":"assertible","description":"Configurations for GitHub post-deployment testing with Assertible via CI","archived":false,"fork":false,"pushed_at":"2017-05-06T01:57:08.000Z","size":49,"stargazers_count":13,"open_issues_count":2,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-07-20T06:44:11.916Z","etag":null,"topics":["api-testing","ci-automation","circleci","continuous-integration","continuous-testing","delivery-pipeline","deployments","testing","travis-ci","wercker"],"latest_commit_sha":null,"homepage":"https://assertible.com","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/assertible.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}},"created_at":"2016-07-08T01:37:58.000Z","updated_at":"2023-07-20T04:17:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"c9281325-1c9c-42f1-b360-129cf5d800a1","html_url":"https://github.com/assertible/deployments","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/assertible/deployments","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assertible%2Fdeployments","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assertible%2Fdeployments/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assertible%2Fdeployments/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assertible%2Fdeployments/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/assertible","download_url":"https://codeload.github.com/assertible/deployments/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/assertible%2Fdeployments/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267966465,"owners_count":24173549,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["api-testing","ci-automation","circleci","continuous-integration","continuous-testing","delivery-pipeline","deployments","testing","travis-ci","wercker"],"created_at":"2024-08-08T02:01:52.479Z","updated_at":"2025-07-31T00:33:03.177Z","avatar_url":"https://github.com/assertible.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://assertible.com\"\u003e\n    \u003cimg src=\"https://assertible.com/images/logo/logo-512x512.png\" width=\"100\" alt=\"Assertible logo\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eContinuously test your web services\u003c/h1\u003e\n  \u003ch3\u003ePost-deployment testing with Assertible\u003c/h3\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003c!-- NOTE: This badge is for the 'assertible/deployments' service and it should always be passing --\u003e\n  \u003ca href=\"https://assertible.com/docs/guide/web-services#web-service-badges\"\u003e\n    \u003cimg\n      src=\"https://assertible.com/apis/325de75c-ab63-4072-ba3f-afb1a5150e93/status?api_token=8b55a286830323effb\"\n      alt=\"Assertible status badge\"\n    /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cbr/\u003e\n\nAssertible **extends your CI pipeline** to provide **automated\npost-deployment API testing**. This repo will show you how to run\nintegration tests against your web app after deploying from CI.\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://assertible.com\"\u003e\n    \u003cimg\n      src=\"https://s3-us-west-2.amazonaws.com/assertible/blog/deployments-api-diagram-no-title.png\"\n      alt=\"API integration tests after a deployment with Assertible\"\n    /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n_Don't have an Assertible account\nyet? [Sign up for free](https://assertible.com/signup)._\n\n## How it works\n\n1. [Send a _deployment_ to the Assertible API](#send-a-deployment-to-the-assertible-api)\n2. [View the result in a GitHub status check](#view-the-result-in-a-github-status-check) _(optional)_\n\nStart by sending a deployment to\nthe [Assertible API](https://assertible.com/docs/guide/deployments)\nafter you deploy your app from CI. This will **initiate integration\ntests** to run on your live web app, and reports any test failures.\n\nWhen\nyou\n[connect Assertible to a GitHub repo](#view-the-result-in-a-github-status-check),\nthe post deployment test results will show as a **status check** on\nyour commits and pull requests.\n\n### Send a deployment to the Assertible API\n\nThe [Deployments API](https://assertible.com/docs/guide/deployments)\nis used to **run integration tests** on your app after a deployment.\nTests can be run on different environments, like `staging` or `qa`, by\nmaking a simple `POST` request:\n\n```sh\ncurl -u $ASSERTIBLE_TOKEN: -XPOST \"https://assertible.com/deployments\" -d'{\n    \"service\": \"'\"${SERVICE}\"'\",\n    \"environmentName\": \"'\"${ENVIRONMENT}\"'\",\n    \"version\": \"'\"${VERSION}\"'\",\n    # Optional\n    \"ref\": \"'\"${COMMIT_ID}\"'\",\n    \"github\": true\n}'\n```\n\nThat's it! When you make that request, tests will be run against your\nAPI to validate the new deployment.\n\nCheck out the [example configurations](#example-configurations) for\ndetails on integrating the script with your CI/CD provider, like\nTravisCI or Wercker.\n\n### View the result in a GitHub status check\n\nWhen you connect Assertible to a GitHub repo, status checks will be\nshown for test results triggered by deployments. Setting up this part\nis easy, just [sign in to Assertible](https://assertible.com/login),\nand\n[connect one of your web services to a repo](https://assertible.com/docs/guide/deployments#github).\n\n![Assertible GitHub Status Check](https://s3-us-west-2.amazonaws.com/assertible/blog/assertible-github-status-check-simple.png)\n\nAssertible will send a status check to GitHub when\nyou\n[send a deployment event to the API](#send-deployment-events-to-the-api). If\nany of the tests fail, a failing status check will show on your\ncommits, and a passing status check will show if all tests pass.\n\n## Example configurations\n\nBelow are some examples for integrating Assertible deployments with\nvarious CI providers.\n\n- [Heroku](#-heroku) ([website](https://heroku.com))\n- [Travis CI](#-travis-ci) ([website](https://travis-ci.org))\n- [Circle CI](#-circle-ci) ([website](https://circleci.com))\n- [Wercker](#-wercker) ([website](http://www.wercker.com/))\n- [Additional resources](#additional-resources)\n- [Status badges!](#status-badges)\n- [Example Projects](#example-projects)\n\n## \u003cimg src=\"https://s3-us-west-2.amazonaws.com/assertible/integrations/heroku-logo.png\" width=\"50\" alt=\"Heroku\" style=\"margin-bottom:-10px\" /\u003e Heroku\n\nIf you're using Heroku Review Apps, this integration will work out of\nthe box with no additional\nconfiguration. Just\n[connect Assertible to a GitHub repo](#connect-to-a-repo) that has\nReview Apps enabled, and open a PR. You should see a status check with\nthe result of your API tests. Learn how to enable this for your Heroku\napp [here](https://devcenter.heroku.com/articles/github-integration)\n\n\u003cbr/\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cimg alt=\"Heroku Github integration\" src=\"https://s3-us-west-2.amazonaws.com/assertible/integrations/heroku-github-connected.png\" style=\"display:block;margin:auto\" /\u003e\n\u003c/div\u003e\n\u003cbr/\u003e\n\n## \u003cimg src=\"https://s3-us-west-2.amazonaws.com/assertible/integrations/TravisCI-Mascot-original.png\" width=\"50\" /\u003e Travis CI\n\n\u003e Note that the examples below assume that you have environment\n\u003e variables set. See\n\u003e the [environment variables section](#environment-variables).\n\nIf you deploy a website or API from Travis-CI (especially if you're\nusing the `deploy` or `after_success` steps), then it will be easy to\ntrigger a deployment event to run your Assertible tests. The sections\nbelow describe some common use-cases:\n\n**Sections**\n\n- [Example `.travis.yml`](#example-travis-config)\n- [Using the `after_deploy` step](#after_deploy)\n- [Using `after_script` or `after_success`](#after_success)\n\n### Example Travis config\n\nYou can see a runnable `.travis.yml` in the repo here:\n\n- https://github.com/assertible/deployments/blob/master/.travis.yml\n\n_Note: You can just copy the two lines below into your existing\nconfiguration, if you have one. Otherwise, continue reading to\ndetermine which setup will work best._\n\n### `after_deploy`\n\nIf you use the [`deploy`](https://docs.travis-ci.com/user/deployment)\nstep in your Travis configuration then you can send a deployment event\nfrom\nthe\n[`after_deploy`](https://docs.travis-ci.com/user/customizing-the-build/#Deploying-your-Code) step,\nlike this:\n\n```yaml\nafter_deploy:\n  - |\n    curl -u $ASSERTIBLE_TOKEN: -XPOST \"https://assertible.com/deployments\" -d'{\n        \"service\": \"'\"${ASSERTIBLE_SERVICE}\"'\",\n        \"environmentName\": \"'\"${ENVIRONMENT}\"'\",\n        \"version\": \"'\"${TRAVIS_COMMIT}\"'\",\n        \"ref\": \"'\"${TRAVIS_COMMIT}\"'\",\n        \"github\": true\n    }'\n```\n\n### `after_success`\n\nIf your `.travis.yml` runs a deployment during the\n[`after_success`](https://docs.travis-ci.com/user/customizing-the-build/#The-Build-Lifecycle)\nstep, then you have two options:\n\n- Add the following lines to the end of your existing `after_success`\n  script, or\n- Copy the following lines to the `after_script` step in your\n  `.travis.yml`.\n\nExample in the `after_script` step:\n\n```yaml\nafter_script:\n  - |\n    curl -u $ASSERTIBLE_TOKEN: -XPOST \"https://assertible.com/deployments\" -d'{\n        \"service\": \"'\"${ASSERTIBLE_SERVICE}\"'\",\n        \"environmentName\": \"'\"${ENVIRONMENT}\"'\",\n        \"version\": \"'\"${TRAVIS_COMMIT}\"'\",\n        \"ref\": \"'\"${TRAVIS_COMMIT}\"'\",\n        \"github\": true\n    }'\n```\n\nRead more about `after_success`\nstep [here](https://docs.travis-ci.com/user/customizing-the-build/)\n\n## \u003cimg src=\"https://s3-us-west-2.amazonaws.com/assertible/integrations/circleci-logo.png\" width=\"50\" /\u003e Circle CI\n\n\u003e Note that the examples below assume that you have environment\n\u003e variables set See\n\u003e the [environment variables section](#environment-variables).\n\nIf you deploy a website or API from Circle CI (especially if you're\nusing the `deployment` step), then it will be easy to trigger a\ndeployment event to run your integration tests. The sections below\ndescribe the most common use-cases:\n\n**Sections**\n\n- [Example `circle.yml`](#example-circleci-config)\n- [Using the `deployment` step](#deployment)\n\n### Example CircleCI config\n\nYou can see a runnable `circle.yml` in the repo here:\n\n- https://github.com/assertible/deployments/blob/master/circle.yml\n\n### `deployment`\n\nIf your `circle.yml` runs a\n[`deployment`](https://circleci.com/docs/configuration/#deployment)\nstep, add the following lines to the end of the `commands` section:\n\n```yaml\ndeployment:\n  production:\n    branch: master\n    commands:\n      # - deploy your app normally here\n      - |\n        curl -u $ASSERTIBLE_TOKEN: -XPOST \"https://assertible.com/deployments\" -d'{\n            \"service\": \"'\"${ASSERTIBLE_SERVICE}\"'\",\n            \"environmentName\": \"'\"${ENVIRONMENT}\"'\",\n            \"version\": \"'\"${CIRCLE_SHA1}\"'\",\n            \"ref\": \"'\"${CIRCLE_SHA1}\"'\",\n            \"github\": true\n        }'\n```\n\nRead more about `deployment` step here:\nhttps://circleci.com/docs/configuration/#deployment\n\n## \u003cimg src=\"https://s3-us-west-2.amazonaws.com/assertible/integrations/wercker-logo.png\" width=\"50\" /\u003e Wercker\n\n\u003e Note that the examples below assume that you have environment\n\u003e variables set See\n\u003e the [environment variables section](#environment-variables).\n\nIf you deploy your API or website from Wercker (especially if you're\nusing the `deployment` step), then it will be easy to run integration\ntests after a deployment.  The sections below describe the most common\nworkflows:\n\n**Sections**\n\n- [Example `wercker.yml`](#example-wercker-config)\n- [Using the `deployment` step](#deploy-step)\n\n### Example Wercker config\n\nYou can see a runnable `wercker.yml` in the\nrepo\n[here](https://github.com/assertible/deployments/blob/master/wercker.yml).\n\n### `deploy` step\n\nIf your `wercker.yml` runs\na [`deployment`](http://old-devcenter.wercker.com/articles/deployment/)\nstep, add the following lines as the very last step in a `script`:\n\n```yaml\ndeploy:\n  steps:\n    # This is where you would normally run your deployment. Right\n    # after this, we will tell Assertible about the deployment, and\n    # tests will be run against the app.\n    - script:\n      code:\n        - |\n          curl -u $ASSERTIBLE_TOKEN: -XPOST \"https://assertible.com/deployments\" -d'{\n              \"service\": \"'\"${ASSERTIBLE_SERVICE}\"'\",\n              \"environmentName\": \"'\"${ENVIRONMENT}\"'\",\n              \"version\": \"'\"${WERCKER_GIT_COMMIT}\"'\",\n              \"ref\": \"'\"${WERCKER_GIT_COMMIT}\"'\",\n              \"github\": true\n          }'\n```\n\nRead more about `deployment`\nstep [here](http://old-devcenter.wercker.com/articles/deployment/).\n\n## Environment variables\n\nThe examples above assume you have some environment variables set:\n\n- `ASSERTIBLE_TOKEN`\n- `ASSERTIBLE_SERVICE`\n\nYou can get this information from the _Deployments_ tab of your web\nservice in\nthe [Assertible dashboard](https://assertible.com/dashboard).\n\n### Travis CI\n\nSet these environment variables in\nyour\n[Travis-CI repository settings](https://docs.travis-ci.com/user/environment-variables/#Defining-Variables-in-Repository-Settings).\n\n### CircleCI CI\n\nSet these environment variables in\nyour\n[Circle CI repository settings](https://circleci.com/docs/environment-variables/).\n\n### Wercker\n\nSet these environment variables in\nyour\n[Wercker project settings](http://devcenter.wercker.com/docs/environment-variables/creating-env-vars).\n\n\n## Additional resources\n\nThese links provide more information on the underlying technology and\nservices that make this work:\n\n- [Assertible - Getting Started](https://assertible.com/docs)\n- [Setting up Assertible and GitHub Deployments](https://assertible.com/docs#github-deployments)\n- [Deployments API documentation](https://assertible.com/docs/guide/deployments)\n\n**Alternatives**\n\nSometimes you don't use GitHub, or sending deployment events isn't\nalways possible. Assertible also supports a standalone Trigger URL\nthat you can use to run your tests from outside the Assertible\ndashboard. For more information, see\nthe [documentation](https://assertible.com/docs#trigger-url)\n\n## Status Badges\n\nAssertible\nhas [status badges](https://assertible.com/docs#test-badges) for your\nweb services and tests to display the current state of your\napplication. The badges can be retrieved from within\nyour [Assertible dashboard](https://assertible.com/login). Here's what\nthey look like:\n\n[![Assertible status](https://assertible.com/apis/325de75c-ab63-4072-ba3f-afb1a5150e93/status?api_token=8b55a286830323effb)](https://assertible.com/docs/guide/web-services#web-service-badges)\n\nNice! Pick yours up today and add it to your repository -- or learn\nmore in the [documentation](https://assertible.com/docs#test-badges)\n\n## Example projects\n\nThere are some open source projects using Assertible with this\nconfiguration; if you're a visual learner then one of these might be\nhelpful:\n\n- [Node.js example app](https://github.com/assertible/nodejs-example)\n  This repo provides an example of a complete continuous integration,\n  deployment, and post-deployment testing pipeline using a Node.js example\n  app. [Check out the tutorial](https://assertible.com/blog/set-up-continuous-testing-with-nodejs)\n\n- [Ruby API example](https://github.com/assertible/ruby-example)\n  This is an example of an automated post-deployment testing pipeline\n  on staging and production environments, with a sample Ruby API.\n  The project uses Codehsip, Heroku, and assertible.\n\n- [Go API example on Heroku](https://github.com/assertible/go-heroku-example) This\n  example uses a Go API that is deployed to Heroku and Review\n  Apps. Since Heroku apps work out-of-the-box, there's no need for a\n  script. [Check out the blog post](https://assertible.com/blog/automate-smoke-tests-for-a-go-api-on-heroku)\n\n- [reichertbrothers.com](https://github.com/rbros/rbros.github.io)\n  reichertbrothers.com is the website for a Haskell consulting\n  company. The website is deployed to GitHub Pages from a Travis-CI\n  build. Once the site has been successfuly deployed, a deployment\n  event is triggered and Assertible's post-deployment tests will run.\n\n- [CheckAFlip](http://checkaflip.com)\n  CheckAFlip is a tool for quickly learning the best price at which to\n  buy or sell any item. The app is deployed from Heroku and, after\n  deploying, Heroku sends a deployment success event and Assertible\n  test's get run.\n\n_Have an open source project using Assertible for post deployment\ntesting? Open a PR to add it to the list, or open an issue!_\n\n## License\n\nAll of the code snippets in this repository are licensed under\nMIT. [View the license](https://github.com/assertible/deployments/blob/master/LICENSE)\n\n\n---\n\n\u003e [assertible.com](http://assertible.com) \u0026nbsp;\u0026middot;\u0026nbsp;\n\u003e GitHub [@assertible](https://github.com/assertible) \u0026nbsp;\u0026middot;\u0026nbsp;\n\u003e Twitter [@AssertibleApp](https://twitter.com/AssertibleApp)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fassertible%2Fdeployments","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fassertible%2Fdeployments","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fassertible%2Fdeployments/lists"}