{"id":24225686,"url":"https://github.com/ivaltryek/pulumi-actions","last_synced_at":"2025-07-16T18:05:56.075Z","repository":{"id":186507563,"uuid":"674985530","full_name":"ivaltryek/pulumi-actions","owner":"ivaltryek","description":"runs init, preview and apply on pulumi stacks right in your Github Actions. Inspired from Atalantis for Terraform","archived":false,"fork":false,"pushed_at":"2023-08-12T17:13:12.000Z","size":53,"stargazers_count":8,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-05T13:03:08.442Z","etag":null,"topics":["action","aws","ci-tool","github-action","iac","pulumi","rust","utility"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/ivaltryek.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}},"created_at":"2023-08-05T11:47:33.000Z","updated_at":"2025-04-22T20:43:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"72d7ff8a-318a-4d88-80bd-6d56c3e2d7de","html_url":"https://github.com/ivaltryek/pulumi-actions","commit_stats":null,"previous_names":["lowkey-who/pulumi-actions","ivaltryek/pulumi-actions"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/ivaltryek/pulumi-actions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivaltryek%2Fpulumi-actions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivaltryek%2Fpulumi-actions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivaltryek%2Fpulumi-actions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivaltryek%2Fpulumi-actions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivaltryek","download_url":"https://codeload.github.com/ivaltryek/pulumi-actions/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivaltryek%2Fpulumi-actions/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265529016,"owners_count":23782799,"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":["action","aws","ci-tool","github-action","iac","pulumi","rust","utility"],"created_at":"2025-01-14T08:15:20.698Z","updated_at":"2025-07-16T18:05:56.054Z","avatar_url":"https://github.com/ivaltryek.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pulumi-actions\nruns init, preview and apply on pulumi stacks right in your Github-Actions. Inspired from [Atlantis for Terraform](https://www.runatlantis.io/)\n\n### PREVIEW Release\nCurrently, In this release; the following are supported only for `Pulumi Cloud` and `AWS S3` with `Typescript` runtime:\n- Init the stack if it does not exists\n- Preview the stack\n- Apply the stack\n\n### Future plans\nNote: Strikethrough comments are already implemented.\n- ~~Add support for AWS Infra, though we can write and use AWS modules and all. But it won't be able to authenticate with AWS Account.~~\n- ~~Add support for AWS Backend (S3)~~\n- Add other runtime support i.e python, go\n\n## Usage\n```\nUsage: pulumi-actions [OPTIONS] --stack \u003cSTACK_NAME\u003e --backend \u003cBACKEND\u003e --path \u003cSTACK_PATH\u003e --runtime \u003cRUNTIME\u003e --passphrase \u003cPASSPHRASE\u003e\n\nOptions:\n  -s, --stack \u003cSTACK_NAME\u003e\n          pulumi stack name\n      --pulumi-cloud-token \u003cPULUMI_CLOUD_TOKEN\u003e\n          Pulumi token - in case of using Pulumi cloud. (Optional)\n      --s3-bucket \u003cS3_BUCKET_NAME\u003e\n          S3 Bucket name - in case if backend is s3. exmaple: \"s3://my-bucket\"\n  -b, --backend \u003cBACKEND\u003e\n          backend type [possible values: pulumicloud, s3]\n  -p, --path \u003cSTACK_PATH\u003e\n          Path to stack's index.ts\n  -r, --runtime \u003cRUNTIME\u003e\n          Path to stack's index.ts [possible values: typescript]\n      --preview\n          preview the stack\n      --apply\n          apply the stack\n      --init\n          init the stack if does not exist\n      --passphrase \u003cPASSPHRASE\u003e\n          stack passphrase\n      --install-deps\n          Install dependencies of language runtime, consider setting true only when you want to preview or apply the stack\n  -h, --help\n          Print help\n  -V, --version\n          Print version\n```\n\n## Examples\n\n- For Github Actions usage\n    ```yaml\n    - name: preview stack\n      uses: lowkey-who/pulumi-actions@main\n       env:\n        pulumi_cloud_token: ${{ secrets.PuluToken }}\n        passphrase: ${{ secrets.Passphrase }}\n       with:\n        cmd: pulumi-actions --pulumi-cloud-token \"$pulumi_cloud_token\" -s test6 --backend pulumicloud --path \"$GITHUB_WORKSPACE/examples/ts\" --install-deps --preview --passphrase \"$passphrase\" --runtime typescript\n    ```\n- Deploy infrastructure on AWS Cloud\n    ```yaml\n    name: Comment Workflow\n\n    on:\n      issue_comment:\n        types:\n        - created\n\n    jobs:\n      comment_job:\n        permissions:\n          id-token: write\n          contents: read\n        name: pulumi-actions\n        if: github.event.issue.pull_request != '' \u0026\u0026 contains(github.event.comment.body, 'pulumi-actions')   \n        runs-on: ubuntu-latest\n\n        steps:\n        - name: Checkout code\n          uses: actions/checkout@v3\n\n        - name: Configure AWS Credentials\n          uses: aws-actions/configure-aws-credentials@v2\n          with:\n            role-to-assume: \u003crole-arn\u003e\n            aws-region: \u003cyour-aws-region\u003e\n\n        - name: Run Pulumi actions \n          uses: lowkey-who/pulumi-actions@main\n          env:\n            passphrase: ${{ secrets.Passphrase }}\n          with:\n            cmd: ${{ github.event.comment.body }}\n\n    ```\n    After setting up this workflow, make a PR on your repo and pass the somewhat similar command to work with s3 backend and AWS Cloud.\n\n    ```\n    pulumi-actions -s ci-test --init --backend s3 --s3-bucket \"s3://my-bucket-name\" --runtime typescript --path \"$GITHUB_WORKSPACE/examples/\" --passphrase \"$passphrase\"\n    ```\n- Send output of action to the Pull request, so that you don't need to go to action and see the logs.\n    ```yaml\n    - name: Run Pulumi actions \n      id: pulumi_actions\n      uses: lowkey-who/pulumi-actions@main\n      env:\n        passphrase: ${{ secrets.Passphrase }}\n      with:\n        cmd: ${{ github.event.comment.body }}\n\n    - name: Echo the output in PR from previous step\n      uses: mshick/add-pr-comment@v2\n      with:\n        message: | \n          ```${{join(steps.pulumi_actions.outputs.*, '\\n')}}\n    \n    ```\n  \n  To work with `aws-actions/configure-aws-credentials@v2` github action, you'll have to configure OIDC setup with AWS. Here is the [doc](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) for that.\n\n- Make this action run on PR when comment is issued.\n  For this use-case check this workflow [example](https://github.com/lowkey-who/pulumi-actions/blob/main/.github/workflows/test-issue-comment.yaml)\n\n  TL;DR Just comment the command that you need to run and action will run whatever fed into the comment. So make sure to check the comment else workflow might not run.\n\n### NOTE: Please test the following examples either in Github Actions or mount the dir when running the docker command.\n- Init the stack\n    ```\n    pulumi-actions -s test6 --backend pulumicloud --path \"/examples/ts\" --runtime typescript --pulumi-cloud-token \"pul-xxxxxxxxxxxxx\" --init --passphrase \"abceDDddsfdsfsdfdsadasd\"\n    ```\n\n- Preview the stack\n    ```\n    pulumi-actions -s test6 --backend pulumicloud --path \"/examples/ts\" --runtime typescript --pulumi-cloud-token \"pul-xxxxxxxxxxxxx\" --preview --install-deps --passphrase \"abceDDddsfdsfsdfdsadasd\"\n    ```\n\n- Apply the stack\n    ```\n    pulumi-actions -s test6 --backend pulumicloud --path \"/examples/ts\" --runtime typescript --pulumi-cloud-token \"pul-xxxxxxxxxxxxx\" --apply --install-deps --passphrase \"abceDDddsfdsfsdfdsadasd\"\n    ```\n\n\u003e workflow [examples](https://github.com/lowkey-who/pulumi-actions/tree/main/.github/workflows)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivaltryek%2Fpulumi-actions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivaltryek%2Fpulumi-actions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivaltryek%2Fpulumi-actions/lists"}