add GitHub Container Registry too to CI (#3)

* add GitHub Container Registry too to CI

the GH Container Registry should be unlimited for public repos, and as such serve as an archive compared to the limited size DO container registry

* fix ghcr.io repository name

* use GHCR image ID in tagging
This commit is contained in:
2024-01-19 11:27:41 +01:00
committed by GitHub
parent 104b730729
commit 3d14c01093
+12 -3
View File
@@ -48,6 +48,8 @@ jobs:
token: ${{ secrets.DO_ACCESS_TOKEN }} token: ${{ secrets.DO_ACCESS_TOKEN }}
- name: Log in to DigitalOcean Container Registry with short-lived credentials - name: Log in to DigitalOcean Container Registry with short-lived credentials
run: doctl registry login --expiry-seconds 1200 run: doctl registry login --expiry-seconds 1200
- name: Log in to GitHub Container Registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- uses: docker/build-push-action@v5 - uses: docker/build-push-action@v5
with: with:
context: . context: .
@@ -60,9 +62,11 @@ jobs:
- name: Tag container image - name: Tag container image
run: | run: |
docker tag kemkas/kemkas:edge registry.digitalocean.com/kemkas/kemkas:${GITHUB_SHA::8} docker tag kemkas/kemkas:edge registry.digitalocean.com/kemkas/kemkas:${GITHUB_SHA::8}
docker tag kemkas/kemkas:edge ghcr.io/${{ github.repository_owner }}/kemkas:${GITHUB_SHA::8}
- name: Push image to Container Registry - name: Push image to Container Registry
run: | run: |
docker push registry.digitalocean.com/kemkas/kemkas:${GITHUB_SHA::8} docker push registry.digitalocean.com/kemkas/kemkas:${GITHUB_SHA::8}
docker push ghcr.io/${{ github.repository_owner }}/kemkas:${GITHUB_SHA::8}
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -78,18 +82,23 @@ jobs:
token: ${{ secrets.DO_ACCESS_TOKEN }} token: ${{ secrets.DO_ACCESS_TOKEN }}
- name: Log in to DigitalOcean Container Registry with short-lived credentials - name: Log in to DigitalOcean Container Registry with short-lived credentials
run: doctl registry login --expiry-seconds 1200 run: doctl registry login --expiry-seconds 1200
- name: Log in to GitHub Container Registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- name: Tag container image with latest tag - name: Tag container image with latest tag
run: | run: |
docker pull ghcr.io/${{ github.repository_owner }}/kemkas:${GITHUB_SHA::8}
docker pull registry.digitalocean.com/kemkas/kemkas:${GITHUB_SHA::8} docker pull registry.digitalocean.com/kemkas/kemkas:${GITHUB_SHA::8}
docker tag registry.digitalocean.com/kemkas/kemkas:${GITHUB_SHA::8} registry.digitalocean.com/kemkas/kemkas:latest docker tag registry.digitalocean.com/kemkas/kemkas:${GITHUB_SHA::8} registry.digitalocean.com/kemkas/kemkas:latest
docker tag ghcr.io/${{ github.repository_owner }}/kemkas:${GITHUB_SHA::8} ghcr.io/${{ github.repository_owner }}/kemkas:latest
- name: Push image to Container Registry - name: Push image to Container Registry
run: | run: |
docker push registry.digitalocean.com/kemkas/kemkas:latest docker push registry.digitalocean.com/kemkas/kemkas:latest
docker push ghcr.io/${{ github.repository_owner }}/kemkas:latest
- name: Get container image ID of the images just pushed - name: Get container image ID of the images just pushed
run: | run: |
docker images registry.digitalocean.com/kemkas/kemkas:${GITHUB_SHA::8} --format "{{.ID}}" docker images ghcr.io/${{ github.repository_owner }}/kemkas:${GITHUB_SHA::8} --format "{{.ID}}"
export DOCKER_IMAGE_ID=$(docker images registry.digitalocean.com/kemkas/kemkas:${GITHUB_SHA::8} --format "{{.ID}}") export DOCKER_IMAGE_ID=$(docker images ghcr.io/${{ github.repository_owner }}/kemkas:${GITHUB_SHA::8} --format "{{.ID}}")
export DOCKER_IMAGE_ID=DO-$DOCKER_IMAGE_ID export DOCKER_IMAGE_ID=GHCR-$DOCKER_IMAGE_ID
echo "DOCKER_IMAGE_ID=$DOCKER_IMAGE_ID" >> $GITHUB_ENV echo "DOCKER_IMAGE_ID=$DOCKER_IMAGE_ID" >> $GITHUB_ENV
- name: Tag commit - name: Tag commit
uses: tvdias/github-tagger@v0.0.1 uses: tvdias/github-tagger@v0.0.1