1+ name : Docker
2+
3+ on :
4+ push :
5+ # Publish `main` as Docker `latest` image and `develop` as `develop` image.
6+ branches :
7+ - main
8+ - develop
9+
10+ # Publish `v1.2.3` tags as releases.
11+ tags :
12+ - v*
13+
14+ # Run tests for any PRs.
15+ pull_request :
16+
17+ env :
18+ # TODO: Change variable to your image's name.
19+ IMAGE_NAME : stork-v
20+
21+ jobs :
22+ # Push image to GitHub Packages.
23+ # See also https://docs.docker.com/docker-hub/builds/
24+ push :
25+ runs-on : ubuntu-latest
26+ if : github.event_name == 'push'
27+
28+ steps :
29+ - uses : actions/checkout@v2
30+
31+ - name : Build image
32+ run : docker build . --file Dockerfile --tag $IMAGE_NAME
33+
34+ - name : Log into GitHub Container Registry
35+ run : echo "${{ secrets.GHCR_TOKEN }}" | docker login https://ghcr.io -u ${{ secrets.GHCR_SVC_ACCOUNT }} --password-stdin
36+
37+ - name : Push image to GitHub Container Registry
38+ run : |
39+ IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME
40+
41+ # Change all uppercase to lowercase
42+ IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
43+
44+ # Strip git ref prefix from version
45+ VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
46+
47+ # Strip "v" prefix from tag name
48+ [[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
49+
50+ # Use Docker `latest` tag convention for main and `develop` for develop
51+ [ "$VERSION" == "main" ] && VERSION=latest
52+ [ "$VERSION" == "develop" ] && VERSION=develop
53+
54+ echo IMAGE_ID=$IMAGE_ID
55+ echo VERSION=$VERSION
56+
57+ docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
58+ docker push $IMAGE_ID:$VERSION
59+ - name : Login to EIPM DockerHub
60+ uses : docker/login-action@v1
61+ with :
62+ username : ${{ secrets.EIPM_DOCKER_HUB_USERNAME }}
63+ password : ${{ secrets.EIPM_DOCKER_HUB_TOKEN }}
64+
65+ - name : Push image to EIPM Docker Hub
66+ run : |
67+ IMAGE_ID=eipm/$IMAGE_NAME
68+
69+ # Change all uppercase to lowercase
70+ IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
71+
72+ # Strip git ref prefix from version
73+ VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
74+
75+ # Strip "v" prefix from tag name
76+ [[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
77+
78+ # Use Docker `latest` tag convention for main and `develop` for develop
79+ [ "$VERSION" == "main" ] && VERSION=latest
80+ [ "$VERSION" == "develop" ] && VERSION=develop
81+
82+ echo IMAGE_ID=$IMAGE_ID
83+ echo VERSION=$VERSION
84+
85+ docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
86+ docker push $IMAGE_ID:$VERSION
0 commit comments