GitHub Action
GitHub Action for DigitalOcean - doctl
This action enables you to interact with DigitalOcean services by installing the doctl
command-line client.
To install the latest version of doctl
and use it in GitHub Actions workflows, create a DigitalOcean API token, add it as a secret to your repository, and add the following step to your workflow:
- name: Install doctl
uses: digitalocean/action-doctl@v2
with:
token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}
doctl
will now be available in the virtual environment and can be used directly in following steps. As an example, one common use case is retrieving the credentials for a Kubernetes cluster hosted on DigitalOcean for use in a deployment workflow:
- name: Save DigitalOcean kubeconfig
run: doctl kubernetes cluster kubeconfig save testing-cluster
See this repository for a full end-to-end example that also demonstrates building a Docker image, pushing it to a private DigitalOcean container registry, and using kubectl
to deploy it to the Kubernetes cluster on DigitalOcean.
token
– (Required) A DigitalOcean personal access token (more info).version
– (Optional) The version ofdoctl
to install. If excluded, the latest release will be used.no_auth
– (Optional) Set totrue
to skip the authentication step. The APItoken
parameter is Optional in this case.- Note: This can be useful when running in workflows in untrusted environments, or where auth isn't necessary (e.g.
doctl app spec validate --schema-only
) - This depends on
doctl >= v1.101.0
(digitalocean/doctl#1450)
- Note: This can be useful when running in workflows in untrusted environments, or where auth isn't necessary (e.g.
To install the needed dependencies, run npm install
. The resulting node_modules/
directory is not checked in to Git.
Before submitting a pull request, run npm run package
to package the code using ncc
. Packaging assembles the code including dependencies into one file in the dist/
directory that is checked in to Git.
Pull requests should be made against the v2
branch.
This GitHub Action and associated scripts and documentation in this project are released under the MIT License.