RepoScalewayScalewaypublished Aug 27, 2026seen 1w

scaleway/scw-serverless-container-action

TypeScript

Open original ↗

Captured source

source ↗

scaleway/scw-serverless-container-action

Description: auto deploy your container with a github action

Language: TypeScript

License: MIT

Stars: 0

Forks: 0

Open issues: 0

Created: 2026-08-27T08:08:11Z

Pushed: 2026-08-27T16:27:41Z

Default branch: main

Fork: no

Archived: no

README:

The simplest way to deploy your app in Scaleway

Scaleway GitHub Action

Scaleway Serverless Containers Github Action is a Github Action plugin allowing Scaleway users to integrate Containers within their CI nicely.

  • Website: https://www.scaleway.com
  • Console: https://console.scaleway.com
  • Documentation: https://www.scaleway.com/en/docs

✅ Requirements

  • A Scaleway account. Sign up now if you don't have any account yet.

📖 Installation

  • Setup a secret named SCW_SECRET_KEY & SCW_ACCESS_KEY within your repository Secrets section and set its value with output of the previous step.

Actually only Scaleway Registry is available.

  • Setup a Containers Namespace SCW_CONTAINER_NAMESPACE_ID within your repository Secrets section and set its value with your Scaleway account namespace.

This Namespace is used inside the same Region of your registry.

You can can setup this namespace with our cli scw containers namespace create command.

  • (optional) Setup a SCW_DNS_ZONE within your repository Secrets section and set its value with your Scaleway account DNS zone.

How To add Custom Domains. 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. 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}.

🔌 Usage

scw_access_key, scw_secret_key & scw_containers_namespace_id will always be necessary

simple deploy

| input name | value | | ------------------- | -------------------------------------- | | type | deploy (default value ) | | scw_registry | rg.fr-par.scw.cloud/test/images:latest | | scw_region | fr-par (default value) | | scw_container_port | 80 (default value ) | | scw_memory_limit | 256 (default value ) | | scw_min_scale | 1 (default value ) | | scw_max_scale | 5 (default value ) | | scw_max_concurrency | 5 (default value ) | | scw_cpu_limit | 70 (default value ) | | scw_sandbox | v1 |

on: [push]

jobs:
deploy:
runs-on: ubuntu-latest
name: Deploy on Scaleway Containers
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Scaleway Container Deploy action
id: deploy
uses: scaleway/scaleway-containers-deploy@v1.0.0
with:
type: deploy
scw_access_key: ${{ secrets.ACCESS_KEY }}
scw_secret_key: ${{ secrets.SECRET_KEY }}
scw_containers_namespace_id: ${{ secrets.CONTAINERS_NAMESPACE_ID }}
scw_registry: rg.fr-par.scw.cloud/test/testing:latest

simple teardown

| input name | value | | ------------ | -------------------------------------- | | type | teardown | | scw_registry | rg.fr-par.scw.cloud/test/images:latest |

on: [push]

jobs:
deploy:
runs-on: ubuntu-latest
name: Teardown Containers
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Scaleway Container Teardown action
id: teardown
uses: scaleway/scaleway-containers-deploy@v1.0.0
with:
type: teardown
scw_access_key: ${{ secrets.ACCESS_KEY }}
scw_secret_key: ${{ secrets.SECRET_KEY }}
scw_containers_namespace_id: ${{ secrets.CONTAINERS_NAMESPACE_ID }}
scw_registry: rg.fr-par.scw.cloud/test/testing:latest

deploy with environment variables and secrets

> Note: The environment variables/secrets values can't contains commas nor equal signs.

| input name | value | | ------------------------- | -------------------------------------- | | type | deploy (default value ) | | scw_registry | rg.fr-par.scw.cloud/test/images:latest | | scw_region | fr-par (default value) | | scw_container_port | 80 (default value ) | | scw_memory_limit | 256 (default value ) | | scw_environment_variables | HELLO=WORLD,JOHN=DOE | | scw_secrets | HELLO=WORLD,JOHN=DOE |

on: [push]

jobs:
deploy:
runs-on: ubuntu-latest
name: Deploy on Scaleway Containers
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Scaleway Container Deploy action
id: deploy
uses: scaleway/scaleway-containers-deploy@v1.0.0
with:
type: deploy
scw_access_key: ${{ secrets.ACCESS_KEY }}
scw_secret_key: ${{ secrets.SECRET_KEY }}
scw_containers_namespace_id: ${{ secrets.CONTAINERS_NAMESPACE_ID }}
scw_registry: rg.fr-par.scw.cloud/test/testing:latest
scw_environment_variables: HELLO=WORLD,JOHN=DOE
scw_secrets: ${{ secrets.SECRETS }}

deploy to another region using an external registry

| input name | value | | ------------------ | -------------------------------------------- | | type | deploy (default value ) | | scw_registry | registry.hub.docker.com/library/nginx:latest | | scw_region | nl-ams | | scw_container_port | 80 (default value ) | | scw_memory_limit | 256 (default value ) |

on: [push]

jobs:
deploy:
runs-on: ubuntu-latest
name: Deploy on Scaleway Containers
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Scaleway Container Deploy action
id: deploy
uses: scaleway/scaleway-containers-deploy@v1.0.0
with:
type: deploy
scw_access_key: ${{ secrets.ACCESS_KEY }}
scw_secret_key: ${{ secrets.SECRET_KEY }}
scw_containers_namespace_id: ${{ secrets.CONTAINERS_NAMESPACE_ID }}
scw_registry: registry.hub.docker.com/library/nginx:latest
scw_region: nl-ams

dns deploy

| input name | value | | ------------ | -------------------------------------- | | type | deploy | | scw_registry | rg.fr-par.scw.cloud/test/images:latest | | scw_dns | containers.test.fr |

Actually, prefix of your dns will use the default value: "name of you created container" This created containers will be based on the tag name of the registry.

on: [push]

jobs:
deploy:
runs-on: ubuntu-latest
name: Deploy on Scaleway Containers
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Scaleway Container Deploy action
id: deploy
uses: scaleway/scaleway-containers-deploy@v1.0.0
with:
type: deploy...

Excerpt shown — open the source for the full document.