{"id":28242713,"url":"https://github.com/rigdev/actions","last_synced_at":"2025-10-12T09:32:51.867Z","repository":{"id":192047314,"uuid":"685935914","full_name":"rigdev/actions","owner":"rigdev","description":null,"archived":false,"fork":false,"pushed_at":"2024-03-07T12:44:21.000Z","size":724,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-24T10:11:51.065Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/rigdev.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,"zenodo":null}},"created_at":"2023-09-01T10:59:12.000Z","updated_at":"2024-05-08T05:22:59.000Z","dependencies_parsed_at":"2023-09-02T08:47:21.641Z","dependency_job_id":"ebaeade8-501e-4c16-a67b-7f5c59423860","html_url":"https://github.com/rigdev/actions","commit_stats":null,"previous_names":["rigdev/actions"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/rigdev/actions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigdev%2Factions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigdev%2Factions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigdev%2Factions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigdev%2Factions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rigdev","download_url":"https://codeload.github.com/rigdev/actions/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rigdev%2Factions/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279010936,"owners_count":26084837,"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-10-12T02:00:06.719Z","response_time":53,"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":[],"created_at":"2025-05-19T06:09:39.809Z","updated_at":"2025-10-12T09:32:51.850Z","avatar_url":"https://github.com/rigdev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Github Actions for Building and Deploying Rig Capsules\n\n[Rig](https://docs.rig.dev) is an application platform for Kubernetes. Rig has a concept of Capsules which is a self-contained deployable unit of your application.\nThese two actions are for building and deploying such Rig capsules from a Docker image.\n\n## Build\n\nThe Rig build is a thin wrapper over a Docker image. Thus often your build/deploy Github workflow would first have an action to create and publish a Docker image from the Git commit. See [here](https://docs.docker.com/build/ci/github-actions) for Docker's Github actions.\n\n### Usage\n\nSee [action.yml](https://github.com/rigdev/actions/blob/main/build/action.yml).\n\n```yaml\n- uses: rigdev/actions/build@v3\n  with:\n    # An URL accessible from the outside to your Rig cluster. The action, which runs in a\n    # Github hosted machine, will communicate with your Rig cluster on this URL.\n    url: \"\"\n\n    # The capsule you want to deploy is in some Rig project.\n    project: \"\"\n\n    # The client ID of a service account in the project which your capsule resides in.\n    # To this project you can create service accounts which gives admin rights over the project.\n    clientID: \"\"\n\n    # The client secret of a service account in the project which your capsule resides in.\n    clientSecret: \"\"\n\n    # The Docker image which you want to deploy to your capsule\n    image: \"\"\n\n    # The name of the capsule which you want to deploy to.\n    capsule: \"\"\n\n    # Set to 'true' if you don't want Rig to validate that the docker image exists.\n    skipImageCheck: \"\"\n\n    # Set to 'true' if you want to deploy the Rig build as well to the capsule\n    deploy: \"\"\n\n    # Required if 'deploy' is true. Sets the environment in which the build will be deployed\n    environment: \"\"\n\n    # Only used if 'deploy' is true. If true, does not execute a deploy but returns the changes that would be made\n    dryRun: \"\"\n\n    # Only used if 'deploy' is true. If true will force-abort the current rollout if it hasn't succeded yet\n    force:\n```\n\n### Outputs:\n| Name          | Type   | Description                                            |\n|---------------|--------|--------------------------------------------------------|\n| build         | string | The ID of the build created                            |\n| rolloutConfig | JSON   | If 'deploy' is true, the Configuration of the rollout. |\n\n## Deploy\n\nThe Deploy action would often be used after the Build action and use the `build` output from it.\n\n### Usage\n\nSee [action.yml](https://github.com/rigdev/actions/blob/main/deploy/action.yml).\n\n```yaml\n- uses: rigdev/actions/deploy@v3\n  with:\n    # An URL accessible from the outside to your Rig cluster. The action, which runs in a\n    # Github hosted machine, will communicate with your Rig cluster on this URL.\n    url: \"\"\n\n    # The capsule you want to deploy is in some Rig project.\n    project: \"\"\n\n    # The client ID of a service account in the project which your capsule resides in.\n    # To this project you can create service accounts which gives admin rights over the project.\n    clientID: \"\"\n\n    # The client secret of a service account in the project which your capsule resides in.\n    clientSecret: \"\"\n\n    # The name of the capsule which you want to deploy to.\n    capsule: \"\"\n\n    # The ID of the Rig build which you wish to deploy to your capsule\n    build: \"\"\n\n    # If true, does not execute a deploy but returns the changes that would be made\n    dryRun: \"\"\n\n    # If true will force-abort the current rollout if it hasn't succeded yet\n    force: \"\"\n```\n\n### Outputs\n| Name          | Type   | Description                                            |\n|---------------|--------|--------------------------------------------------------|\n| rolloutConfig | JSON   | If 'deploy' is true, the Configuration of the rollout. |\n\n## Example\n\n```yaml\njobs:\n  build-and-deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Create build on Rig\n        uses: rigdev/actions/build@v3\n        id: build_rig\n        with:\n          url: url-to-rig-cluster\n          project: YOUR_PROJECT_NAME\n          clientID: YOUR_ID\n          clientSecret: YOUR_SECRET\n          image: DOCKER_IMAGE\n          capsule: YOUR_CAPSULE\n      - name: Deploy to capsule\n        uses: rigdev/actions/deploy@v3\n        with:\n          url: url-to-rig-cluster\n          project: YOUR_PROJECT_NAME\n          environement: YOUR_ENVIRONMENT\n          clientID: YOUR_ID\n          clientSecret: YOUR_SECRET\n          capsule: YOUR_CAPSULE\n          build: ${{ steps.build_rig.outputs.build }}\n```\n\n## Example with first pushing a Docker image from the commit just committed\n\nThis is the most common pattern. You've committed a changed you want to deploy to your capsule. First you build a docker image of the commit, push it to Dockerhub and then deploy to the capsule.\n\nIn this example a username and password to Dockerhub is stored as a Github secret in the repository of the workflow. The same is done with the client secret to the Rig project\n\n```yaml\non: [push]\n\njobs:\n  build-and-deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n\n      - name: Login to Docker Hub\n        uses: docker/login-action@v2\n        with:\n          username: ${{ secrets.DOCKER_HUB_USERNAME }}\n          password: ${{ secrets.DOCKER_HUB_PASSWORD }}\n\n      - name: Set up Docker Buildx\n        uses: docker/setup-buildx-action@v2\n\n      - name: Build and push\n        uses: docker/build-push-action@v4\n        with:\n          context: .\n          file: ./Dockerfile\n          push: true\n          tags: ${{ secrets.DOCKER_HUB_USERNAME }}/DOCKER_IMAGE_NAME:latest\n\n      - name: Create build on Rig\n        uses: rigdev/actions/build@v3\n        id: build_rig\n        with:\n          url: url-to-rig-cluster\n          project: YOUR_PROJECT_NAME\n          clientID: YOUR_ID\n          clientSecret: ${{ secrets.RIG_PROJECT_CLIENT_SECRET }}\n          image: ${{ secrets.DOCKER_HUB_USERNAME }}/DOCKER_IMAGE_NAME:latest\n          capsule: YOUR_CAPSULE\n\n      - name: Deploy to capsule\n        uses: rigdev/actions/deploy@v3\n        with:\n          url: url-to-rig-cluster\n          project: YOUR_PROJECT_NAME\n          environement: YOUR_ENVIRONMENT\n          clientID: YOUR_ID\n          clientSecret: ${{ secrets.RIG_PROJECT_CLIENT_SECRET }}\n          capsule: YOUR_CAPSULE\n          build: ${{ steps.build_rig.outputs.build }}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frigdev%2Factions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frigdev%2Factions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frigdev%2Factions/lists"}