summaryrefslogtreecommitdiffstats
path: root/.github/workflows/on_demand.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/on_demand.yml')
-rw-r--r--.github/workflows/on_demand.yml89
1 files changed, 89 insertions, 0 deletions
diff --git a/.github/workflows/on_demand.yml b/.github/workflows/on_demand.yml
new file mode 100644
index 0000000..1e41be2
--- /dev/null
+++ b/.github/workflows/on_demand.yml
@@ -0,0 +1,89 @@
+---
+name: "Build a docker image on-demand"
+on:
+ workflow_dispatch:
+ inputs:
+ tag:
+ description: "Tag to use during the build (default: dev)"
+ required: true
+ default: 'dev'
+
+jobs:
+ docker:
+ name: Docker Image Build
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Docker meta for TAG
+ id: meta
+ uses: docker/metadata-action@v4
+ with:
+ images: |
+ ${{ secrets.DOCKER_IMAGE }}
+ ghcr.io/${{ secrets.DOCKER_IMAGE }}
+ tags: |
+ type=raw,value=${{ inputs.tag }}
+
+ - name: Login to DockerHub
+ uses: docker/login-action@v2
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKER_PASSWORD }}
+
+ - name: Login to GitHub Container Registry
+ uses: docker/login-action@v2
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Build and push
+ uses: docker/build-push-action@v4
+ with:
+ context: .
+ file: Dockerfile
+ push: true
+ tags: ${{ steps.meta.outputs.tags }}
+ labels: ${{ steps.meta.outputs.labels }}
+
+ docker_in_docker:
+ name: Docker Image Build with Docker support
+ runs-on: ubuntu-latest
+ needs: [docker]
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Docker meta for TAG
+ id: meta
+ uses: docker/metadata-action@v4
+ with:
+ images: |
+ ${{ secrets.DOCKER_IMAGE }}
+ ghcr.io/${{ secrets.DOCKER_IMAGE }}
+ tags: |
+ type=raw,value=${{ inputs.tag }}-dind
+
+ - name: Login to DockerHub
+ uses: docker/login-action@v2
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKER_PASSWORD }}
+
+ - name: Login to GitHub Container Registry
+ uses: docker/login-action@v2
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Build and push
+ uses: docker/build-push-action@v4
+ with:
+ context: .
+ file: Dockerfile.docker
+ push: true
+ tags: ${{ steps.meta.outputs.tags }}
+ labels: ${{ steps.meta.outputs.labels }}