{"id":15366731,"url":"https://github.com/south-paw/action-netlify-cli","last_synced_at":"2025-06-21T07:35:35.169Z","repository":{"id":62151547,"uuid":"558311243","full_name":"South-Paw/action-netlify-cli","owner":"South-Paw","description":"🙌 Netlify deployments and CLI via GitHub actions","archived":false,"fork":false,"pushed_at":"2023-09-13T08:34:04.000Z","size":15,"stargazers_count":14,"open_issues_count":2,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-26T16:59:15.139Z","etag":null,"topics":["action","actions","continuous-delivery","deploy","deployment","draft","github-action","github-actions","github-deployment","github-environments","hacktoberfest","netlify","static-site"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/South-Paw.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-10-27T09:46:43.000Z","updated_at":"2025-03-12T18:04:26.000Z","dependencies_parsed_at":"2024-10-01T13:19:44.489Z","dependency_job_id":"2c44960b-9f8e-4f23-8462-e11f34f3b48f","html_url":"https://github.com/South-Paw/action-netlify-cli","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/South-Paw/action-netlify-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/South-Paw%2Faction-netlify-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/South-Paw%2Faction-netlify-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/South-Paw%2Faction-netlify-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/South-Paw%2Faction-netlify-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/South-Paw","download_url":"https://codeload.github.com/South-Paw/action-netlify-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/South-Paw%2Faction-netlify-cli/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261085520,"owners_count":23107544,"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","actions","continuous-delivery","deploy","deployment","draft","github-action","github-actions","github-deployment","github-environments","hacktoberfest","netlify","static-site"],"created_at":"2024-10-01T13:19:35.878Z","updated_at":"2025-06-21T07:35:30.154Z","avatar_url":"https://github.com/South-Paw.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# action-netlify-cli\n\nThis action enables arbitrary actions with the [Netlify CLI](https://github.com/netlify/cli)\n\nThis action is a replacement for `netlify/actions/cli@master` _without_ the docker layer that incurs an extra 30-50s of runner time (which seems result in an average deploy time of ~1m 30s).\n\nThis action usually completes in under a minute (and in best cases, 30s).\n\n## Secrets\n\n- `NETLIFY_AUTH_TOKEN` - _Required_ The token to use for authentication. [Obtain one with the UI](https://www.netlify.com/docs/cli/#obtain-a-token-in-the-netlify-ui)\n- `NETLIFY_SITE_ID` - _Optional_ API site ID of the site you wanna work on [Obtain it from the UI](https://www.netlify.com/docs/cli/#link-with-an-environment-variable)\n\n## Outputs\n\nThe following outputs will be available from a step that uses this action:\n\n- `NETLIFY_OUTPUT`, the full stdout from the run of the `netlify` command\n\n## Recipes\n\n### Simple publish\n\n```yml\non: [push]\njobs:\n  publish:\n    runs-on: ubuntu-latest\n    steps:\n      # build your site for deployment... in this case the `public` folder is being deployed\n\n      - name: Publish\n        uses: South-Paw/action-netlify-cli@v2\n        id: netlify\n        with:\n          # be sure to escape any double quotes with a backslash\n          args: 'deploy --json --dir \\\"./public\\\" --message \\\"draft [${{ github.sha }}]\\\"'\n        env:\n          NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}\n          NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}\n\n      # and access outputs in other steps with ${{ steps.netlify.outputs.OUTPUT_ID }}\n```\n\n### GitHub deployments\n\n```yml\non: [push]\njobs:\n  publish:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Start deployment\n        uses: bobheadxi/deployments@v1\n        id: deployment\n        with:\n          env: production\n          step: start\n\n      # ... steps to build your site for deployment\n\n      - name: Deploy to Netlify\n        uses: South-Paw/action-netlify-cli@v2\n        id: netlify\n        with:\n          # note that the --json flag has been passed so we can parse outputs\n          args: deploy --json --prod --dir './public' --message 'production [${{ github.sha }}]'\n        env:\n          NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}\n          NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}\n\n      - name: Finish deployment\n        uses: bobheadxi/deployments@v1\n        if: always()\n        with:\n          env: ${{ steps.deployment.outputs.env }}\n          step: finish\n          status: ${{ job.status }}\n          deployment_id: ${{ steps.deployment.outputs.deployment_id }}\n          env_url: ${{ fromJson(steps.netlify.outputs.NETLIFY_OUTPUT).url }}\n```\n\n### Parse `--json` flag\n\n```yml\non: [push]\njobs:\n  publish:\n    runs-on: ubuntu-latest\n    steps:\n      # ... steps to build your site for deployment\n\n      - name: Deploy to Netlify\n        uses: South-Paw/action-netlify-cli@v2\n        id: netlify\n        with:\n          # note that the --json flag has been passed so we can parse outputs\n          args: deploy --json --prod --dir './public' --message 'production [${{ github.sha }}]'\n        env:\n          NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}\n          NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}\n\n      # You can parse the `NETLIFY_OUTPUT` output with `fromJson` function for the following information:\n      - name: Parse NETLIFY_OUTPUT JSON\n        run: |\n          echo \"The URL where the logs from the deploy can be found\"\n          echo \"${{ fromJson(steps.netlify.outputs.NETLIFY_OUTPUT).logs }}\"\n          echo \"\"\n          echo \"the URL of the draft site that Netlify provides\"\n          echo \"${{ fromJson(steps.netlify.outputs.NETLIFY_OUTPUT).deploy_url }}\"\n          echo \"\"\n          echo \"the URL of the \"real\" site, set only if `--prod` was passed\"\n          echo \"${{ fromJson(steps.netlify.outputs.NETLIFY_OUTPUT).url }}\"\n```\n\n## Issues and Bugs\n\nIf you find any, please report them [here](https://github.com/South-Paw/action-netlify-cli/issues) so they can be squashed.\n\n## License\n\nMIT, see the [LICENSE](https://github.com/South-Paw/awesome-gatsby-starter/blob/master/LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsouth-paw%2Faction-netlify-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsouth-paw%2Faction-netlify-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsouth-paw%2Faction-netlify-cli/lists"}