{"id":23779456,"url":"https://github.com/saagie/saagie_cicd_tool","last_synced_at":"2026-04-10T11:30:15.950Z","repository":{"id":208846583,"uuid":"722629090","full_name":"saagie/saagie_cicd_tool","owner":"saagie","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-08T13:51:05.000Z","size":29,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-01T10:18:48.143Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/saagie.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}},"created_at":"2023-11-23T15:00:39.000Z","updated_at":"2024-07-08T13:51:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"80d0cd65-0f3f-40e0-a0ea-add0b7ae50bc","html_url":"https://github.com/saagie/saagie_cicd_tool","commit_stats":null,"previous_names":["saagie/saagie_cicd","saagie/saagie_cicd_tool"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saagie%2Fsaagie_cicd_tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saagie%2Fsaagie_cicd_tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saagie%2Fsaagie_cicd_tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saagie%2Fsaagie_cicd_tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saagie","download_url":"https://codeload.github.com/saagie/saagie_cicd_tool/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239979322,"owners_count":19728500,"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":[],"created_at":"2025-01-01T10:18:50.792Z","updated_at":"2026-04-10T11:30:15.896Z","avatar_url":"https://github.com/saagie.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Saagie DataOps Platform CI/CD GitHub Action\n\nThis GitHub Action is designed to streamline the CI/CD process for the Saagie Platform.\nIt provides a set of customizable options to enhance your jobs and pipelines on the Saagie platform.\n\n\n## Usage\n\n\n\u003e **_Before you begin:_**\n\u003e - You must have a Saagie account with at least editor rights to the platform(s). For more information on access rights, see [About Groups Page](https://docs.saagie.io/user/latest/data-team/security-module/about-security-module#security-groups). \n\u003e - You must have at least one project on your Saagie platform(s). For more information on how to create projects, see [Creating Projects](https://docs.saagie.io/user/latest/data-team/projects-module/projects/managing-projects#projects-create).\n\n1. Create the following environment variables:\n    - `SAAGIE_URL`: This is the URL of your Saagie platform.\n    - `SAAGIE_USER`: This is the username of your Saagie account.\n    - `SAAGIE_PWD`: This is the password of your Saagie account.\n    - `SAAGIE_REALM`: This is the [DNS prefix](https://docs.saagie.io/user/latest/admin/installation/system-requirements#install-sysreq-dns-entry) determined when Saagie was installed. The Realm allows you to connect to your Saagie platform.\n\n     They will be used to make the connection with your Saagie platform. For more information on how to create environment variables, you can see:\n\n      | Environment | Documentation Link |\n      | :----: | :---- |\n      | GitHub | [Creating configuration variables for a repository](https://docs.github.com/en/actions/learn-github-actions/variables#creating-configuration-variables-for-a-repository). \u003cbr\u003e :memo: Note: If you have password type variables, you must create them as secrets. |\n      | Linux | [Environment Variables](https://wiki.debian.org/EnvironmentVariables) |\n      | Windows | [Create and Modify Environment Variables on Windows](https://docs.oracle.com/en/database/oracle/machine-learning/oml4r/1.5.1/oread/administrative-tasks-oracle-machine-learning-r.html#GUID-DD6F9982-60D5-48F6-8270-A27EC53807D0) |\n      | Mac | [Use environment variables in Terminal on Mac](https://support.apple.com/en-gb/guide/terminal/apd382cc5fa-4f58-4449-b20a-41c53c006f8f/2.13/mac/13.0) |\n\n1. Import the `cicd_saagie_tool` folder in your work directory, which includes the `__main__.py`, `requirements.txt`, and `utils.py` files.\n1. Create a GitHub Action workflow file in your repository. For more information, see the GitHub documentation for [Using workflows](https://docs.github.com/en/actions/using-workflows#creating-a-workflow-file).\n1. Add the following step to your workflow file:\n    ```yaml\n    name: Saagie CICD\n    \n    on:\n      push:\n        branches:\n          - main\n    \n    jobs:\n      saagie-cicd:\n        runs-on: ubuntu-latest\n        steps:\n          - name: Checkout Repository\n            uses: actions/checkout@v2\n    \n          - name: Saagie CICD Action\n            uses: saagie/saagie_cicd_tool@\u003crelease-tag\u003e\n            with:\n              action: 'update'  # Available values: package_job, update_job, update_pipeline, update. Default: update\n              saagie_url: ${{ secrets.SAAGIE_URL }}\n              saagie_user: ${{ secrets.SAAGIE_USER }}\n              saagie_pwd: ${{ secrets.SAAGIE_PASSWORD }}\n              saagie_realm: ${{ secrets.SAAGIE_REALM }}\n              saagie_env: 'dev' # Environment to connect to the Saagie Platform. It should be the same as the one in the env config files.\n              job_config_folder: 'saagie/jobs/*.json'  # Folder where job config files are stored\n              pipeline_config_folder: 'saagie/pipelines/*.json'  # Folder where pipeline config files are stored\n              env_config_folder: './saagie/envs/*.json'  # Folder where env config files are stored\n              job_source_folder: './code/jobs/*/*'  # Folder where job source code files are stored\n              pipeline_source_folder: './code/pipelines/*.yaml'  # Folder where pipeline source code files are stored\n              artefact_code_folder: './dist/*/*'  # Folder where artefact code files are stored\n    ```\n    Where the path to configuration and code files can be replaced with your own value.  \n      \n     \u003e :memo: Note: When using the `package_job` action, the zip file will be stored in the `{artefact_code_folder}/{job_name}` folder. The name of the zip file will be `{job_name}.zip`.\n1. Make sure you have the required configuration and code files for each Saagie platform, job, and pipeline. For more information, see our [template repository](https://github.com/saagie/template_cicd/tree/main).\n\n   \u003e :memo: Note: The configuration files are stored in the `saagie` directory. The code files are stored in the `code` directory.\n   \n   \u003e :memo: Note: For more information on the set up process, see [CI/CD With Saagie Python API](https://docs.saagie.io/user/latest/developer/ci-cd/).\n\n## Inputs\n\n| Inputs | Description |\n| :----: | :---- |\n| `action` \u003cbr\u003e (optional) | What you want to do on your Saagie platform. \u003cbr\u003e The available values are: `package_job`, `update_job`, `update_pipeline`, `update`. \u003cbr\u003e The default value is: `update`. |\n| `saagie_url` \u003cbr\u003e (optional) | The URL of your Saagie platform. |\n| `saagie_user` \u003cbr\u003e (optional) | The username of your Saagie account. |\n| `saagie_pwd` \u003cbr\u003e (optional) | The password of your Saagie account. |\n| `saagie_realm` \u003cbr\u003e (optional) | The DNS prefix determined when Saagie was installed. The Realm allows you to connect to your Saagie platform. |\n| `saagie_env` \u003cbr\u003e (optional) | The Saagie platform you want to connect to. \u003cbr\u003e Example: dev, prod, preprod, etc. |\n| `debug_mode` \u003cbr\u003e (optional) | Debug mode. It is deactivated by default. \u003cbr\u003e Set something other than `' '` to enable the debug mode. |\n| `job_config_folder` \u003cbr\u003e (optional) | The folder where the job configuration files are stored. \u003cbr\u003e The default location is: `'saagie/jobs/*.json'`. |\n| `pipeline_config_folder` \u003cbr\u003e (optional) | The folder where the pipeline configuration files are stored. \u003cbr\u003e The default location is: `'saagie/pipelines/*.json'`. |\n| `env_config_folder` \u003cbr\u003e (optional) | The folder where the environment configuration files are stored. \u003cbr\u003e The default location is: `'./saagie/envs/*.json'`. |\n| `job_source_folder` \u003cbr\u003e (optional) | The folder where the job source code files are stored. \u003cbr\u003e The default location is: `'./code/jobs/*/*'`. |\n| `pipeline_source_folder` \u003cbr\u003e (optional) | The folder where the pipeline source code files are stored. \u003cbr\u003e The default location is: `'./code/pipelines/*.yaml'`. |\n| `artefact_code_folder` \u003cbr\u003e (optional) | The folder where the artefact code files are stored. \u003cbr\u003e The default location is: `'./dist/*/*'`. |\n\n## Example\n\n```yaml\nwith:\n  action: 'update'\n  saagie_url: ${{ secrets.SAAGIE_URL }}\n  saagie_user: ${{ secrets.SAAGIE_USER }}\n  saagie_pwd: ${{ secrets.SAAGIE_PASSWORD }}\n  saagie_realm: ${{ secrets.SAAGIE_REALM }}\n  saagie_env: dev\n  job_config_folder: 'saagie/jobs/*.json'\n  pipeline_config_folder: 'saagie/pipelines/*.json'\n  env_config_folder: './saagie/envs/*.json'\n  job_source_folder: './code/jobs/*/*'\n  pipeline_source_folder: './code/pipelines/*.yaml'\n  artefact_code_folder: './dist/*/*'\n```\n\n\n### Compatibility with your Saagie platform\n\n| **Saagie platform version** | **saagie_cicd_tool release** |\n|-----------------------------|------------------------------|\n| \u003e= 2023.03                  | =v0.0.1                      |\n| \u003e= 2024.01                  | =v0.0.2                      |\n| \u003e= 2024.02                  | =v0.0.3                      |\n\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaagie%2Fsaagie_cicd_tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaagie%2Fsaagie_cicd_tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaagie%2Fsaagie_cicd_tool/lists"}