{"id":16836545,"url":"https://github.com/jcfr/ci-sandbox","last_synced_at":"2025-04-11T05:12:40.360Z","repository":{"id":17736513,"uuid":"82610618","full_name":"jcfr/ci-sandbox","owner":"jcfr","description":"My sandbox for experimenting with CI services","archived":false,"fork":false,"pushed_at":"2023-11-08T05:26:38.000Z","size":10594,"stargazers_count":1,"open_issues_count":18,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-11T05:12:35.017Z","etag":null,"topics":["appveyor","azure-pipelines","circleci","continuous-integration","sandbox","scikit-ci","travis-ci"],"latest_commit_sha":null,"homepage":null,"language":"Python","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/jcfr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSES/Apache-2.0.txt","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},"funding":{"custom":["https://www.kitware.com/contact-us/","https://kitware.com"]}},"created_at":"2017-02-20T22:48:44.000Z","updated_at":"2023-03-09T23:09:46.000Z","dependencies_parsed_at":"2023-11-08T07:56:33.273Z","dependency_job_id":null,"html_url":"https://github.com/jcfr/ci-sandbox","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcfr%2Fci-sandbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcfr%2Fci-sandbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcfr%2Fci-sandbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcfr%2Fci-sandbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jcfr","download_url":"https://codeload.github.com/jcfr/ci-sandbox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248345267,"owners_count":21088244,"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","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":["appveyor","azure-pipelines","circleci","continuous-integration","sandbox","scikit-ci","travis-ci"],"created_at":"2024-10-13T12:13:45.549Z","updated_at":"2025-04-11T05:12:40.343Z","avatar_url":"https://github.com/jcfr.png","language":"Python","funding_links":["https://www.kitware.com/contact-us/","https://kitware.com"],"categories":[],"sub_categories":[],"readme":"# ci-sandbox\n\nMy sandbox for experimenting with CI services.\n\n|              | CircleCI                                  | TravisCI                                 | Appveyor                                     | Azure Pipelines                                              |\n|--------------|-------------------------------------------|------------------------------------------|----------------------------------------------|--------------------------------------------------------------|\n| Build Status | [![Circle CI][circle-img]][circle-status] | [![TravisCI][travis-img]][travis-status] | [![Appveyor][appveyor-img]][appveyor-status] | [![Build Status][azure-pipeline-img]][azure-pipeline-status] |\n\n\n[circle-img]: https://circleci.com/gh/jcfr/ci-sandbox.svg?style=svg\n[circle-status]: https://circleci.com/gh/jcfr/ci-sandbox\n\n[travis-img]: https://travis-ci.org/jcfr/ci-sandbox.svg?branch=master \n[travis-status]: https://travis-ci.org/jcfr/ci-sandbox\n\n[appveyor-img]: https://ci.appveyor.com/api/projects/status/81c2532cyie43bhu?svg=true\n[appveyor-status]: https://ci.appveyor.com/project/jcfr/ci-sandbox\n\n[azure-pipeline-img]: https://dev.azure.com/74forever/ci-sandbox/_apis/build/status/jcfr.ci-sandbox?branchName=master\n[azure-pipeline-status]: https://dev.azure.com/74forever/ci-sandbox/_build/latest?definitionId=1\u0026branchName=master\n\n\n# Disable all notifications\n\n* Appveyor\n\n```\nnotifications:\n  - provider: Email\n    on_build_success: false\n    on_build_failure: false\n    on_build_status_changed: false\n```\n\n* CircleCI\n\nThe email notification settings are controlled by the user.\n\n![](https://raw.githubusercontent.com/jcfr/ci-sandbox/master/images/circleci-perproject-email-notification-settings.png)\n\n\n* TravisCI\n\n```\nnotifications:\n  email: false\n```\n\n# Deployment settings\n\n## CircleCI 2.0\n\n* Two deploy jobs:\n  * ``deploy-master``: associated with ``master`` branch\n  * ``deploy-release``: associated with a [tag regular expression](https://circleci.com/docs/2.0/configuration-reference/#filters-1): ``/v[0-9]+\\.[0-9]+\\.[0-9]+/``. See also [Git Tag Job Execution](https://circleci.com/docs/2.0/workflows/#git-tag-job-execution).\n\nEach jobs depend on all other `pythonXY` jobs.\n\n```\nworkflows:\n  version: 2\n  test-package-publish:\n    jobs:\n      [...]\n      - deploy-master:\n          requires:\n            - python27\n            - python35\n            - python36\n            - python37\n          filters:\n            branches:\n              only: master\n      - deploy-release:\n          requires:\n            - python27\n            - python35\n            - python36\n            - python37\n          filters:\n            tags:\n              only: /[0-9]+(\\.[0-9]+)*/\n            branches:\n              ignore: /.*/\n```\n\nSubmission when ``master`` is updated:\n\n![](images/circleci-2.0-deploy-master.png)\n\n![](images/circleci-2.0-deploy-master-details.png)\n\nSubmission when a tag is pushed:\n\n![](images/circleci-2.0-deploy-release.png)\n\n![](images/circleci-2.0-deploy-release-details.png)\n\n\n## CircleCI 1.0 (deprecated)\n\n* Two sections:\n  * ``nightly``: associated with ``master`` branch\n  * ``release``: associated with a [tag regular expression](https://circleci.com/docs/configuration/#tags): ``/v[0-9]+\\.[0-9]+\\.[0-9]+/``\n\n  ```\n  deployment:\n    nightly:\n      branch: master\n      owner: jcfr\n      commands:\n        - echo \"deployment-nightly\"\n    release:\n      tag: /v[0-9]+\\.[0-9]+\\.[0-9]+/\n      owner: jcfr\n      commands:\n        - echo \"deployment-release\"\n  ```\n\n  Submission when ``master`` is updated:\n\n  ![](https://raw.githubusercontent.com/jcfr/ci-sandbox/master/images/circleci-deployment-release-nightly-master-updated.png)\n\n  Submission after creating and pushing a tag:\n\n  ```\n  git tag -s -m \"v0.1.0\" v0.1.0\n  git push origin v0.1.0\n  ```\n\n  works as expected:\n\n  ![](https://raw.githubusercontent.com/jcfr/ci-sandbox/master/images/circleci-deployment-release-nightly-signed-tag-pushed_1.png)\n\n  ![](https://raw.githubusercontent.com/jcfr/ci-sandbox/master/images/circleci-deployment-release-nightly-signed-tag-pushed_2.png)\n\n## TravisCI\n\n* Two sections each associated with a [script](https://docs.travis-ci.com/user/deployment/script/) provider.\n\n```\ndeploy:\n  - provider: script\n    script: echo \"deployment-release\"\n    skip_cleanup: true\n    on:\n      repo: jcfr/ci-sandbox\n      tags: true\n  - provider: script\n    script: echo \"deployment-nightly\"\n    skip_cleanup: true\n    on:\n      repo: jcfr/ci-sandbox\n      branch: master\n```\n\nHere is a submission associated with ``master``:\n\n![](https://raw.githubusercontent.com/jcfr/ci-sandbox/master/images/travis-deploy-nightly.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcfr%2Fci-sandbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjcfr%2Fci-sandbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcfr%2Fci-sandbox/lists"}