From b870b59927cd7c7ffd59557d618a30c256ba3449 Mon Sep 17 00:00:00 2001 From: tienngo Date: Fri, 6 Feb 2026 10:03:02 +0000 Subject: [PATCH] Add action.yml --- action.yml | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 action.yml diff --git a/action.yml b/action.yml new file mode 100644 index 0000000..0144a16 --- /dev/null +++ b/action.yml @@ -0,0 +1,61 @@ +name: Docker Build & Push (Template) + +on: + workflow_call: + inputs: + runner: + required: false + type: string + default: ubuntu-latest + image_name: + required: true + type: string + image_tag: + required: false + type: string + default: latest + dockerfile: + required: false + type: string + default: Dockerfile + context: + required: false + type: string + default: . + outputs: + image: + description: Fully-qualified image reference pushed to Docker Hub + value: ${{ jobs.build.outputs.image }} + +jobs: + build: + runs-on: ${{ inputs.runner }} + outputs: + image: ${{ steps.push.outputs.image }} + + steps: + - uses: actions/checkout@v4 + + - name: Build Docker image + run: | + docker build \ + -t "${{ inputs.image_name }}:${{ inputs.image_tag }}" \ + -f "${{ inputs.dockerfile }}" \ + "${{ inputs.context }}" + + - name: Log in to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ env.DOCKER_HUB_USERNAME }} + password: ${{ env.DOCKER_HUB_ACCESS_TOKEN }} + + - name: Push Docker image to Docker Hub + id: push + shell: bash + run: | + set -euo pipefail + REMOTE_IMAGE="${{ env.DOCKER_HUB_USERNAME }}/${{ inputs.image_name }}:${{ inputs.image_tag }}" + docker tag "${{ inputs.image_name }}:${{ inputs.image_tag }}" "$REMOTE_IMAGE" + docker push "$REMOTE_IMAGE" + echo "image=$REMOTE_IMAGE" >> "$GITHUB_OUTPUT" +