Skip to content

Commit 1e332be

Browse files
committed
first commit
0 parents  commit 1e332be

9 files changed

+200
-0
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.idea
2+
.git

README.md

+97
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
# docker
2+
3+
[![Docker](https://serhiy.s3.eu-central-1.amazonaws.com/Github_repo/docker/horizontal-logo-monochromatic-white.png)](https://www.docker.com)
4+
5+
GitHub Action with docker cli.
6+
7+
## Usage
8+
```bash
9+
- name: Login to docker hub
10+
uses: actions-hub/docker/login@master
11+
env:
12+
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
13+
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
14+
15+
- name: Build :latest
16+
run: docker build -t ${GITHUB_REPOSITORY}:latest .
17+
18+
- name: Push to docker hub :latest
19+
uses: actions-hub/docker/cli@master
20+
with:
21+
args: push ${GITHUB_REPOSITORY}:latest
22+
```
23+
24+
## Actions
25+
26+
This repository contains 2 actions:
27+
28+
- [login](https://github.com/actions-hub/docker/login)
29+
- [cli](https://github.com/actions-hub/docker/cli)
30+
31+
## Example
32+
33+
### Latest
34+
```bash
35+
name: Docker registry
36+
37+
on: [push]
38+
39+
jobs:
40+
github:
41+
runs-on: ubuntu-latest
42+
steps:
43+
- uses: actions/checkout@v1
44+
45+
- name: Login to github registry
46+
uses: actions-hub/docker/login@master
47+
env:
48+
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
49+
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
50+
DOCKER_REGISTRY_URL: docker.pkg.github.com
51+
52+
- name: Build :lastest
53+
if: success()
54+
run: docker build -t docker.pkg.github.com/${{ github.repository }}/app:latest .
55+
56+
- name: Push to docker hub :latest
57+
if: success()
58+
uses: actions-hub/docker/cli@master
59+
with:
60+
args: push docker.pkg.github.com/${{ github.repository }}:latest
61+
```
62+
63+
### Tag
64+
```bash
65+
name: Docker registry
66+
67+
on:
68+
push:
69+
tags:
70+
- 'v*'
71+
72+
jobs:
73+
github:
74+
runs-on: ubuntu-latest
75+
steps:
76+
- uses: actions/checkout@v1
77+
78+
- name: Login to github registry
79+
uses: actions-hub/docker/login@master
80+
env:
81+
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
82+
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
83+
DOCKER_REGISTRY_URL: docker.pkg.github.com
84+
85+
- name: Build :tag
86+
if: success()
87+
run: docker build -t docker.pkg.github.com/${{ github.repository }}/app:${{ IMAGE_TAG }} .
88+
89+
- name: Push to docker hub :tag
90+
if: success()
91+
uses: actions-hub/docker/cli@master
92+
with:
93+
args: push docker.pkg.github.com/${{ github.repository }}:${{ IMAGE_TAG }}
94+
```
95+
96+
## Licence
97+
[MIT License](https://github.com/actions-hub/docker/blob/master/LICENSE)

action.yml

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: 'Docker Action'
2+
description: 'GitHub Action with docker cli'
3+
author: 'Serhiy Mytrovtsiy <mitrovtsiy@ukr.net>'
4+
branding:
5+
icon: 'box'
6+
color: 'blue'
7+
inputs:
8+
DOCKER_IMAGE:
9+
description: 'Docker image (if not the same as repo)'
10+
DOCKER_TAG:
11+
description: 'Docker tag (if want to specify tag)'
12+
DOCKER_USERNAME:
13+
description: 'Docker registry username'
14+
DOCKER_PASSWORD:
15+
description: 'Docker registry password'
16+
DOCKER_REGISTRY_URL:
17+
description: 'Docker registry url'
18+
outputs:
19+
IMAGE_NAME:
20+
description: 'Image name'
21+
IMAGE_TAG:
22+
description: 'Image tag'
23+
runs:
24+
using: 'docker'
25+
image: './cli/Dockerfile'

cli/Dockerfile

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
FROM docker:stable
2+
3+
COPY entrypoint.sh /entrypoint.sh
4+
RUN chmod +x /entrypoint.sh
5+
6+
ENTRYPOINT ["/entrypoint.sh"]

cli/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# docker/cli

cli/entrypoint.sh

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#!/bin/sh
2+
3+
set -e
4+
5+
if [ ! -e "$HOME/.docker/config.json" ]; then
6+
echo "::error::Not authorized. Please use login action to authorize to registry. Exiting...."
7+
exit 1
8+
fi
9+
10+
if [[ -z "${IMAGE_NAME}" ]]; then
11+
IMAGE_NAME=${GITHUB_REPOSITORY}
12+
fi
13+
14+
if [[ ! -z "${IMAGE_TAG}" ]]; then
15+
IMAGE_TAG=${GITHUB_REF#*/}
16+
IMAGE_TAG=${IMAGE_TAG#*/}
17+
IMAGE_TAG=$(echo $IMAGE_TAG | sed -e "s#^v##")
18+
else
19+
IMAGE_TAG=latest
20+
fi
21+
22+
echo ::set-output name=IMAGE_TAG::${IMAGE_TAG}
23+
echo ::set-output name=IMAGE_NAME::${IMAGE_NAME}
24+
25+
echo ::add-path::/usr/local/bin/docker
26+
27+
sh -c "docker $*"

login/Dockerfile

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
FROM docker:stable
2+
3+
COPY entrypoint.sh /entrypoint.sh
4+
RUN chmod +x /entrypoint.sh
5+
6+
ENTRYPOINT ["/entrypoint.sh"]

login/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# docker/login

login/entrypoint.sh

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/bin/sh
2+
3+
set -e
4+
5+
if [[ ! -z "${DOCKER_USERNAME}" && ! -z "${DOCKER_PASSWORD}" ]]; then
6+
echo "Authorization credentials was found. Signing...."
7+
8+
if [[ ! -z "${DOCKER_REGISTRY_URL}" ]]; then
9+
echo "$DOCKER_PASSWORD" | docker login "$DOCKER_REGISTRY_URL" -u "$DOCKER_USERNAME" --password-stdin
10+
else
11+
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
12+
fi
13+
14+
echo "Successfully signed in to docker registry."
15+
16+
IMAGE_NAME=${NAME}
17+
if [[ -z "${IMAGE_NAME}" ]]; then
18+
IMAGE_NAME=${GITHUB_REPOSITORY}
19+
fi
20+
21+
IMAGE_TAG=${TAG}
22+
if [[ -z "${IMAGE_TAG}" ]]; then
23+
IMAGE_TAG=${GITHUB_REF#*/}
24+
IMAGE_TAG=${IMAGE_TAG#*/}
25+
IMAGE_TAG=$(echo $IMAGE_TAG | sed -e "s#^v##")
26+
fi
27+
28+
echo ::set-output name=IMAGE_TAG::${IMAGE_TAG}
29+
echo ::set-output name=IMAGE_NAME::${IMAGE_NAME}
30+
else
31+
echo "::error::Not authorized. Please check if DOCKER_USERNAME and DOCKER_PASSWORD provided. Exiting...."
32+
exit 1
33+
fi
34+
35+
echo ::add-path::/usr/local/bin/docker

0 commit comments

Comments
 (0)