a5ba64f65e | ||
---|---|---|
.github | ||
__tests__ | ||
dist | ||
src | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.prettierrc.json | ||
CHANGELOG.md | ||
LICENSE | ||
README.md | ||
action.yml | ||
jest.config.js | ||
package.json | ||
tsconfig.json | ||
yarn.lock |
README.md
About
GitHub Action to login against a Docker registry
If you are interested, check out my other :octocat: GitHub Actions!
Usage
DockerHub
name: ci
on:
push:
branches: master
jobs:
login:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Login to DockerHub
uses: crazy-max/ghaction-docker-login@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
GitHub Package Registry
name: ci
on:
push:
branches: master
jobs:
login:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Login to GitHub Package Registry
uses: crazy-max/ghaction-docker-login@v1
with:
registry: docker.pkg.github.com
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
GitLab
name: ci
on:
push:
branches: master
jobs:
login:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Login to GitLab
uses: crazy-max/ghaction-docker-login@v1
with:
registry: registry.gitlab.com
username: ${{ secrets.GITLAB_USERNAME }}
password: ${{ secrets.GITLAB_PASSWORD }}
Azure Container Registry (ACR)
Create a service principal with access to your container registry through the Azure CLI and take note of the generated service principal's ID (also called client ID) and password (also called client secret).
name: ci
on:
push:
branches: master
jobs:
login:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Login to ACR
uses: crazy-max/ghaction-docker-login@v1
with:
registry: <registry-name>.azurecr.io
username: ${{ secrets.AZURE_CLIENT_ID }}
password: ${{ secrets.AZURE_CLIENT_SECRET }}
Replace
<registry-name>
with the name of your registry.
Google Container Registry (GCR)
Use a service account with the ability to push to GCR and configure access control.
Then create and download the JSON key for this service account and save content of .json
file
as a secret
called GCR_JSON_KEY
in your GitHub repo. Ensure you set the username to _json_key
.
name: ci
on:
push:
branches: master
jobs:
login:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Login to GCR
uses: crazy-max/ghaction-docker-login@v1
with:
registry: gcr.io
username: _json_key
password: ${{ secrets.GCR_JSON_KEY }}
AWS Elastic Container Registry (ECR)
Use an IAM user with the ability to push to ECR.
Then create and download access keys and save AWS_ACCESS_KEY_ID
and AWS_SECRET_ACCESS_KEY
as secrets
in your GitHub repo.
name: ci
on:
push:
branches: master
jobs:
login:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Login to ECR
uses: crazy-max/ghaction-docker-login@v1
with:
registry: <aws-account-number>.dkr.ecr.<region>.amazonaws.com
username: ${{ secrets.AWS_ACCESS_KEY_ID }}
password: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
Replace
<aws-account-number>
and<region>
with their respective values.
Customizing
inputs
Following inputs can be used as step.with
keys
Name | Type | Default | Description |
---|---|---|---|
registry |
String | Server address of Docker registry. If not set then will default to Docker Hub | |
username |
String | Username used to log against the Docker registry | |
password |
String | Password or personal access token used to log against the Docker registry | |
logout |
Bool | true |
Log out from the Docker registry at the end of a job |
Keep up-to-date with GitHub Dependabot
Since Dependabot
has native GitHub Actions support,
to enable it on your GitHub repo all you need to do is add the .github/dependabot.yml
file:
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
Limitation
This action is only available for Linux virtual environments.
How can I help?
All kinds of contributions are welcome 🙌! The most basic way to show your support is to star 🌟 the project, or to raise issues 💬 You can also support this project by becoming a sponsor on GitHub 👏 or by making a Paypal donation to ensure this journey continues indefinitely! 🚀
Thanks again for your support, it is much appreciated! 🙏
License
MIT. See LICENSE
for more details.