From d1a0e9e00f4b2194a9fbabda59964cf09a148e62 Mon Sep 17 00:00:00 2001 From: Bentley Hensel Date: Tue, 11 Jul 2023 10:38:37 -0400 Subject: [PATCH] GHA --- .github/workflows/containerize.yml | 64 ++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 .github/workflows/containerize.yml diff --git a/.github/workflows/containerize.yml b/.github/workflows/containerize.yml new file mode 100644 index 0000000..2a10856 --- /dev/null +++ b/.github/workflows/containerize.yml @@ -0,0 +1,64 @@ +name: 🏗️📤 Build and publish 🐳 images + +on: + push: + + + workflow_dispatch: + + +env: + GHCR_REGISTRY: ghcr.io + DOCKERHUB_REGISTRY: docker.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + build-and-push-image: + name: 🏗️📤 Build and push 🐳 image + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + + steps: + - name: 👀📦 Checkout repository. + uses: actions/checkout@v3 + + - name: 🔑📦 Login to GitHub Container Registry + uses: docker/login-action@v2.1.0 + with: + registry: ${{ env.GHCR_REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: 🔑📦 Login to Docker Hub + uses: docker/login-action@v2.1.0 + with: + registry: ${{ env.DOCKERHUB_REGISTRY }} + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: 🔍📝 Extract metadata (🏷️, 🏷️) for 🐳 + id: meta + uses: docker/metadata-action@v4.3.0 + with: + flavor: | + latest=${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }} + images: | + ${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }} + ${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=raw,value=latest,priority=100,enable=${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }} + type=sha,enable=true,prefix={{branch}}-,suffix=,format=short,priority=300 + type=raw,prefix={{branch}}-,value=latest,priority=200,enable=${{ github.ref != format('refs/heads/{0}', github.event.repository.default_branch) }} + +# Caching | https://docs.docker.com/build/ci/github-actions/cache/ + - name: 🏗️📤 Build and push 🐳 image + uses: docker/build-push-action@v2.7.0 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + # cache-from: type=gha + # cache-to: type=gha,mode=max