{"id":19858237,"url":"https://github.com/philibea/scaleway-containers-deploy","last_synced_at":"2025-05-02T02:30:49.953Z","repository":{"id":41307213,"uuid":"460519505","full_name":"philibea/scaleway-containers-deploy","owner":"philibea","description":"scaleway deploy container with registry and custom endpoint dns","archived":false,"fork":false,"pushed_at":"2024-07-24T06:41:12.000Z","size":6087,"stargazers_count":10,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-14T09:12:58.756Z","etag":null,"topics":["container","deploy","dns","docker","github-actions","go","golang","scaleway"],"latest_commit_sha":null,"homepage":"","language":"Go","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/philibea.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":"2022-02-17T16:37:19.000Z","updated_at":"2024-07-25T08:42:14.000Z","dependencies_parsed_at":"2024-11-12T14:22:50.589Z","dependency_job_id":"ce2e8f00-cacf-481d-bdd4-c5c61be0d983","html_url":"https://github.com/philibea/scaleway-containers-deploy","commit_stats":{"total_commits":19,"total_committers":2,"mean_commits":9.5,"dds":"0.052631578947368474","last_synced_commit":"6d56de1cc69bee00a792a9be7a72e4661ae74f97"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philibea%2Fscaleway-containers-deploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philibea%2Fscaleway-containers-deploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philibea%2Fscaleway-containers-deploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philibea%2Fscaleway-containers-deploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/philibea","download_url":"https://codeload.github.com/philibea/scaleway-containers-deploy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251972441,"owners_count":21673604,"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":["container","deploy","dns","docker","github-actions","go","golang","scaleway"],"created_at":"2024-11-12T14:22:16.056Z","updated_at":"2025-05-02T02:30:48.571Z","avatar_url":"https://github.com/philibea.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"./logo.png\" alt=\"Scaleway logo\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eThe simplest way to deploy your app in Scaleway\u003c/h3\u003e\n\n\u003cbr /\u003e\n\n# [Scaleway](https://www.scaleway.com/) GitHub Action\n\n**Scaleway Containers Github Action** is a Github Action plugin allowing Scaleway users to integrate Containers within their CI nicely.\n\n- Website: https://www.scaleway.com\n- Console: https://console.scaleway.com\n- Documentation: https://www.scaleway.com/en/docs\n\n## ✅ Requirements\n\n- A **Scaleway** account. [Sign up now](https://console.scaleway.com/register/) if you don't have any account yet.\n\n## 📖 Installation\n\n- Create an API key: [how to generate your API token?](https://www.scaleway.com/en/docs/console/my-project/how-to/generate-api-key)\n\n- Setup a secret named `SCW_SECRET_KEY` \u0026 `SCW_ACCESS_KEY` within your repository `Secrets` section and set its value with output of the previous step.\n\n- Setup a [Registry](https://www.scaleway.com/en/docs/faq/containerregistry)\n  Actually only Scaleway Registry is available.\n\n- Setup a Containers Namespace `SCW_CONTAINER_NAMESPACE_ID` within your repository `Secrets` section and set its value with your Scaleway account namespace.\n  This Namespace is used inside the same Region of your registry.\n\nYou can can setup this namespace with our cli `scw containers namespace create` command.\n\n- (optional) Setup a `SCW_DNS_ZONE` within your repository `Secrets` section and set its value with your Scaleway account DNS zone.\n  How To add [Custom Domains](https://www.scaleway.com/en/docs/compute/containers/how-to/add-a-custom-domain-to-a-container/).\n  In this automation process, we will use the DNS zone of your Scaleway account. Each zone will be based on the container name created and based on the tag of your Image.\n  Your path registry is `rg.fr-par.scw.cloud/test/images:latest`, your container name tag will be `latest` and your DNS zone will be `latest.${SCW_DNS_ZONE}`.\n\n## 🔌 Usage\n\n`scw_access_key`, `scw_secret_key` \u0026 `scw_containers_namespace_id` will always be necessary\n\n### simple deploy\n\n| input name           | value                                  |\n| -------------------- | -------------------------------------- |\n| type                 | deploy (default value )                |\n| scw_registry         | rg.fr-par.scw.cloud/test/images:latest |\n| scw_region           | fr-par (default value)                 |\n| scw_container_port   | 80 (default value )                    |\n| scw_memory_limit     | 256 (default value )                   |\n| scw_min_scale        | 1   (default value )                   |\n| scw_max_scale        | 5   (default value )                   |\n| scw_max_concurrency  | 5   (default value )                   |\n| scw_cpu_limit        | 70  (default value )                   |\n| scw_sandbox          | v1                                     |\n\n```bash\non: [push]\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    name: Deploy on Scaleway Containers\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n      - name: Scaleway Container Deploy action\n        id: deploy\n        uses:  philibea/scaleway-containers-deploy@v1.0.5\n        with:\n          type: deploy\n          scw_access_key:  ${{ secrets.ACCESS_KEY }}\n          scw_secret_key: ${{ secrets.SECRET_KEY }}\n          scw_containers_namespace_id: ${{ secrets.CONTAINERS_NAMESPACE_ID }}\n          scw_registry: rg.fr-par.scw.cloud/test/testing:latest\n\n```\n\n### simple teardown\n\n| input name   | value                                  |\n| ------------ | -------------------------------------- |\n| type         | teardown                               |\n| scw_registry | rg.fr-par.scw.cloud/test/images:latest |\n\n```bash\non: [push]\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    name: Teardown Containers\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n      - name: Scaleway Container Teardown action\n        id: teardown\n        uses:  philibea/scaleway-containers-deploy@v1.0.5\n        with:\n          type: teardown\n          scw_access_key:  ${{ secrets.ACCESS_KEY }}\n          scw_secret_key: ${{ secrets.SECRET_KEY }}\n          scw_containers_namespace_id: ${{ secrets.CONTAINERS_NAMESPACE_ID }}\n          scw_registry: rg.fr-par.scw.cloud/test/testing:latest\n\n```\n\n### deploy with environment variables and secrets\n\n\u003e **Note**: The environment variables/secrets values can't contains commas nor equal signs.\n\n| input name                | value                                  |\n| ------------------------- | -------------------------------------- |\n| type                      | deploy (default value )                |\n| scw_registry              | rg.fr-par.scw.cloud/test/images:latest |\n| scw_region                | fr-par (default value)                 |\n| scw_container_port        | 80 (default value )                    |\n| scw_memory_limit          | 256 (default value )                   |\n| scw_environment_variables | HELLO=WORLD,JOHN=DOE                   |\n| scw_secrets               | HELLO=WORLD,JOHN=DOE                   |\n\n```bash\non: [push]\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    name: Deploy on Scaleway Containers\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n      - name: Scaleway Container Deploy action\n        id: deploy\n        uses:  philibea/scaleway-containers-deploy@v1.0.5\n        with:\n          type: deploy\n          scw_access_key:  ${{ secrets.ACCESS_KEY }}\n          scw_secret_key: ${{ secrets.SECRET_KEY }}\n          scw_containers_namespace_id: ${{ secrets.CONTAINERS_NAMESPACE_ID }}\n          scw_registry: rg.fr-par.scw.cloud/test/testing:latest\n          scw_environment_variables: HELLO=WORLD,JOHN=DOE\n          scw_secrets: ${{ secrets.SECRETS }}\n\n```\n\n### deploy to another region using an external registry\n\n| input name                | value                                        |\n| ------------------------- | -------------------------------------------- |\n| type                      | deploy (default value       )                |\n| scw_registry              | registry.hub.docker.com/library/nginx:latest |\n| scw_region                | nl-ams                                       |\n| scw_container_port        | 80 (default value )                          |\n| scw_memory_limit          | 256 (default value )                         |\n\n```bash\non: [push]\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    name: Deploy on Scaleway Containers\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n      - name: Scaleway Container Deploy action\n        id: deploy\n        uses:  philibea/scaleway-containers-deploy@v1.0.5\n        with:\n          type: deploy\n          scw_access_key:  ${{ secrets.ACCESS_KEY }}\n          scw_secret_key: ${{ secrets.SECRET_KEY }}\n          scw_containers_namespace_id: ${{ secrets.CONTAINERS_NAMESPACE_ID }}\n          scw_registry: registry.hub.docker.com/library/nginx:latest\n          scw_region: nl-ams\n\n```\n\n### dns deploy\n\n| input name   | value                                  |\n| ------------ | -------------------------------------- |\n| type         | deploy                                 |\n| scw_registry | rg.fr-par.scw.cloud/test/images:latest |\n| scw_dns      | containers.test.fr                     |\n\nActually, prefix of your dns will use the default value: \"name of you created container\"\nThis created containers will be based on the tag name of the registry.\n\n```bash\non: [push]\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    name: Deploy on Scaleway Containers\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n      - name: Scaleway Container Deploy action\n        id: deploy\n        uses:  philibea/scaleway-containers-deploy@v1.0.5\n        with:\n          type: deploy\n          scw_access_key:  ${{ secrets.ACCESS_KEY }}\n          scw_secret_key: ${{ secrets.SECRET_KEY }}\n          scw_containers_namespace_id: ${{ secrets.CONTAINERS_NAMESPACE_ID }}\n          scw_registry: rg.fr-par.scw.cloud/test/testing:latest\n          scw_dns: containers.test.fr\n`````\n\n### dns teardown\n\n| input name                | value                                  |\n| ------------------------- | -------------------------------------- |\n| type                      | teardown                               |\n| scw_registry              | rg.fr-par.scw.cloud/test/images:latest |\n| scw_dns                   | containers.test.fr                     |\n| scw_dns_prefix (optional) | testing                                |\n\n```bash\non: [push]\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    name: Teardown Containers\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n      - name: Scaleway Container Teardown action\n        id: teardown\n        uses:  philibea/scaleway-containers-deploy@v1.0.5\n        with:\n          type: teardown\n          scw_access_key:  ${{ secrets.ACCESS_KEY }}\n          scw_secret_key: ${{ secrets.SECRET_KEY }}\n          scw_containers_namespace_id: ${{ secrets.CONTAINERS_NAMESPACE_ID }}\n          scw_registry: rg.fr-par.scw.cloud/test/testing:latest\n          scw_dns: containers.test.fr\n```\n\n## dns deploy on root zone\n\nif you want to deploy a container on your zone, you will need to control a new boolean variable `root_zone`\n\n## 🐳 Docker\n\nIf you want to use this flow outside of Github Actions, you can use the Docker Image.\n\n```bash\ndocker run -it --rm \\\n  -e INPUT_SCW_ACCESS_KEY=${SCW_ACCESS_KEY} \\\n  -e INPUT_SCW_SECRET_KEY=${SCW_SECRET_KEY} \\\n  -e INPUT_SCW_CONTAINERS_NAMESPACE_ID=${SCW_CONTAINERS_NAMESPACE_ID} \\\n  -e INPUT_SCW_REGISTRY=rg.fr-par.scw.cloud/test/testing:latest \\\n  -e INPUT_SCW_DNS=containers.test.fr \\\n  -e INPUT_TYPE=deploy \\\n  phiphi/scaleway-containers-deploy:latest\n```\n\n## Gitlab\n\nIf you want to use this flow outside of Github Actions, you can use the Docker Image inside you gitlab-ci configuration. You can check an exemple in this directory [here](./.gitlab-ci.yml)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilibea%2Fscaleway-containers-deploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphilibea%2Fscaleway-containers-deploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilibea%2Fscaleway-containers-deploy/lists"}