{"id":17981813,"url":"https://github.com/ljtill/azure-deployment-stacks-action","last_synced_at":"2025-03-25T18:31:31.269Z","repository":{"id":245573255,"uuid":"818218153","full_name":"ljtill/azure-deployment-stacks-action","owner":"ljtill","description":"[WIP] Azure Deployment Stacks Action","archived":true,"fork":false,"pushed_at":"2024-09-30T16:19:28.000Z","size":3879,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-14T18:30:30.417Z","etag":null,"topics":["arm-templates","azure","azure-resource-manager","bicep","deployment-stacks","deployments","github-actions","infrastructure-as-code"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/ljtill.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-21T11:00:10.000Z","updated_at":"2024-09-30T16:19:35.000Z","dependencies_parsed_at":"2024-06-22T21:27:54.575Z","dependency_job_id":"6fe2aa3b-6537-449b-9238-f01b22f55200","html_url":"https://github.com/ljtill/azure-deployment-stacks-action","commit_stats":null,"previous_names":["ljtill/azure-deployment-stacks-action"],"tags_count":0,"template":false,"template_full_name":"actions/typescript-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ljtill%2Fazure-deployment-stacks-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ljtill%2Fazure-deployment-stacks-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ljtill%2Fazure-deployment-stacks-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ljtill%2Fazure-deployment-stacks-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ljtill","download_url":"https://codeload.github.com/ljtill/azure-deployment-stacks-action/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245520008,"owners_count":20628814,"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":["arm-templates","azure","azure-resource-manager","bicep","deployment-stacks","deployments","github-actions","infrastructure-as-code"],"created_at":"2024-10-29T18:12:13.059Z","updated_at":"2025-03-25T18:31:26.260Z","avatar_url":"https://github.com/ljtill.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Azure Deployment Stacks Action\n\n![Icon](./docs/static/stacks.jpg)\n\nThis repository contains a [GitHub Action](https://docs.github.com/actions) that\nallows engineers to create, update, delete, and validate\n[Azure Deployment Stacks](https://learn.microsoft.com/azure/azure-resource-manager/bicep/deployment-stacks)\ndirectly from their GitHub workflows. It supports a variety of inputs for scopes\nand options, making it flexible and easy to use for managing Azure resources.\nWhether you need to define the scope at the management group, subscription, or\nresource group level, this action provides the necessary parameters to tailor\ndeployments to your specific needs. Additionally, it includes options for\nsetting the location, mode, and handling unmanaged resources, as well as\nconfiguring deny settings and specifying ARM or Bicep templates. This GitHub\nAction streamlines the process of managing Azure infrastructure, enabling\nefficient and automated deployments.\n\n## Getting Started\n\n```yaml\n- name: Login\n  uses: azure/login@v2\n  with:\n    client-id: ${{ secrets.AZURE_CLIENT_ID }}\n    tenant-id: ${{ secrets.AZURE_TENANT_ID }}\n    subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}\n\n- name: Deployment\n  uses: ljtill/azure-deployment-stacks-action@v1\n  with:\n    name: 'Microsoft.Samples'\n    description: 'Sample description for the Deployment Stack'\n    location: uksouth\n    scope: subscription\n    mode: create\n    action-on-unmanage: delete-all\n    deny-settings: deny-write-and-delete\n    subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}\n    template-file: ./src/main.bicep\n    parameters-file: ./src/main.bicepparam\n    wait: true\n```\n\n## Authentication\n\nThe default method for authentication involves using the\n[`azure/login@v2`](https://github.com/azure/login) action as an initial step.\nHowever, since our codebase relies on the Azure SDK, we utilize the\n[DefaultAzureCredential](https://learn.microsoft.com/azure/developer/javascript/sdk/authentication/overview)\nchain within the application. This approach enables us to integrate additional\nauthentication methods like WorkloadIdentityCredential and ManagedIdentity,\nwhich are especially beneficial when executing jobs on Self-Hosted Agents.\n\n## Modes\n\nThe action supports three modes: `create`, `delete` and `validate`.\n\nFor `create` mode, it is recommended to use it with `push` triggers. This setup\nensures that whenever changes are pushed to the repository, the action\nautomatically creates or updates the Azure Deployment Stack accordingly. This is\nideal for continuous integration and deployment workflows, where infrastructure\nchanges should be applied seamlessly as part of the development process.\nAdditionally, this will delete or detach resources that are no longer defined\nwithin the Deployment Stack.\n\nFor `delete` mode, it is recommended to use it with `workflow_dispatch`\ntriggers. This setup allows for manual initiation of the delete process through\nthe GitHub Actions interface. Using `workflow_dispatch` triggers provides\ngreater control and prevents accidental deletions, ensuring that stacks are only\ndeleted when explicitly requested by an authorized user. This is particularly\nuseful for maintenance tasks or cleanup operations, where automated deletion\ncould pose risks.\n\nFor `validate` mode, it is recommended to use it with `pull_request` triggers.\nThis ensures that the Azure Deployment Stack is validated whenever a pull\nrequest is created or updated. By integrating validation into the pull request\nworkflow, you can catch potential issues or misconfigurations before they are\nmerged into the main branch. This setup is ideal for ensuring the quality and\nintegrity of infrastructure changes, as it allows for early detection of errors\nand provides an opportunity to review and address issues collaboratively. This\napproach helps maintain a stable and reliable infrastructure by preventing\nproblematic changes from being integrated into the production environment.\n\n## Workflows\n\nThe following samples provide end-to-end implementations of the Azure Deployment\nStamps Action:\n\n- [Create](./docs/WORKFLOWS.md#create)\n- [Delete](./docs/WORKFLOWS.md#delete)\n- [Validate](./docs/WORKFLOWS.md#validate)\n\n## Customisation\n\nFor a complete list of customisation options, please refer to the\n[Inputs](./docs/INPUTS.md) document.\n\n## Documentation\n\n- [Deployment Stacks](https://learn.microsoft.com/azure/azure-resource-manager/bicep/deployment-stacks)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fljtill%2Fazure-deployment-stacks-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fljtill%2Fazure-deployment-stacks-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fljtill%2Fazure-deployment-stacks-action/lists"}