commit b870b59927cd7c7ffd59557d618a30c256ba3449 Author: tienngo Date: Fri Feb 6 10:03:02 2026 +0000 Add 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" +