GitHub Action
Netlify CLI
2.0.0
Latest version
This action enables arbitrary actions with the Netlify CLI
This 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).
This action usually completes in under a minute (and in best cases, 30s).
NETLIFY_AUTH_TOKEN
- Required The token to use for authentication. Obtain one with the UINETLIFY_SITE_ID
- Optional API site ID of the site you wanna work on Obtain it from the UI
The following outputs will be available from a step that uses this action:
NETLIFY_OUTPUT
, the full stdout from the run of thenetlify
command
on: [push]
jobs:
publish:
runs-on: ubuntu-latest
steps:
# build your site for deployment... in this case the `public` folder is being deployed
- name: Publish
uses: South-Paw/action-netlify-cli@v2
id: netlify
with:
# be sure to escape any double quotes with a backslash
args: 'deploy --json --dir \"./public\" --message \"draft [${{ github.sha }}]\"'
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
# and access outputs in other steps with ${{ steps.netlify.outputs.OUTPUT_ID }}
on: [push]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Start deployment
uses: bobheadxi/deployments@v1
id: deployment
with:
env: production
step: start
# ... steps to build your site for deployment
- name: Deploy to Netlify
uses: South-Paw/action-netlify-cli@v2
id: netlify
with:
# note that the --json flag has been passed so we can parse outputs
args: deploy --json --prod --dir './public' --message 'production [${{ github.sha }}]'
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
- name: Finish deployment
uses: bobheadxi/deployments@v1
if: always()
with:
env: ${{ steps.deployment.outputs.env }}
step: finish
status: ${{ job.status }}
deployment_id: ${{ steps.deployment.outputs.deployment_id }}
env_url: ${{ fromJson(steps.netlify.outputs.NETLIFY_OUTPUT).url }}
on: [push]
jobs:
publish:
runs-on: ubuntu-latest
steps:
# ... steps to build your site for deployment
- name: Deploy to Netlify
uses: South-Paw/action-netlify-cli@v2
id: netlify
with:
# note that the --json flag has been passed so we can parse outputs
args: deploy --json --prod --dir './public' --message 'production [${{ github.sha }}]'
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
# You can parse the `NETLIFY_OUTPUT` output with `fromJson` function for the following information:
- name: Parse NETLIFY_OUTPUT JSON
run: |
echo "The URL where the logs from the deploy can be found"
echo "${{ fromJson(steps.netlify.outputs.NETLIFY_OUTPUT).logs }}"
echo ""
echo "the URL of the draft site that Netlify provides"
echo "${{ fromJson(steps.netlify.outputs.NETLIFY_OUTPUT).deploy_url }}"
echo ""
echo "the URL of the "real" site, set only if `--prod` was passed"
echo "${{ fromJson(steps.netlify.outputs.NETLIFY_OUTPUT).url }}"
If you find any, please report them here so they can be squashed.
MIT, see the LICENSE file.