actions/.github/workflows/docker.yaml

94 lines
2.9 KiB
YAML
Raw Permalink Normal View History

2024-02-06 08:56:36 -05:00
name: Build & Publish Dockerfile
on:
workflow_call:
inputs:
repository:
type: string
required: true
description: Git repository URL
dockerfile:
type: string
required: false
description: Name or path to Dockerfile
default: Dockerfile
registry:
type: string
required: false
description: Docker registry FQDN
default: ${{github.server_url}}
user:
type: string
required: false
description: Docker user
default: ${{github.repository_owner}}
pass:
type: string
required: true
description: User password
name:
type: string
required: false
description: Docker container name
default: ${{github.repository}}
tag:
type: string
required: false
description: Docker tag that will be added to image
default: ${{github.ref_name}}
jobs:
docker:
name: Build & Publish Dockerfile
runs-on: ubuntu-latest
container: docker
steps:
- name: Clone Repository
uses: ztimson/actions/clone@develop
with:
url: ${{inputs.repository}}
2024-02-06 08:57:15 -05:00
2024-02-06 08:56:36 -05:00
- name: Get Version Number
2024-02-06 08:57:57 -05:00
run: |
[[ -f package.json ]] && echo "VERSION=$(cat package.json | grep version | grep -Eo ':.+' | grep -Eo '[[:alnum:]\.\/\-]+')" >> $GITHUB_ENV
2024-02-06 08:59:58 -05:00
shell: sh
2024-02-06 08:56:36 -05:00
- name: Build Docker Image
uses: ztimson/actions/docker/build@develop
with:
registry: ${{inputs.registry}}
name: ${{inputs.name}}
tag: ${{inputs.tag}}
dockerfile: ${{inputs.dockerfile}}
- name: Push as ${{inputs.tag}}
uses: ztimson/actions/docker/push@develop
with:
registry: ${{inputs.registry}}
user: ${{inputs.user}}
pass: ${{inputs.pass}}
name: ${{inputs.name}}
tag: ${{inputs.tag}}
2024-02-06 08:57:15 -05:00
2024-02-06 08:56:36 -05:00
- name: Push as ${{env.VERSION}}
uses: ztimson/actions/docker/push@develop
if: ${{env.VERSION}}
with:
2024-02-06 09:40:44 -05:00
from: "${{inputs.registry}}/${{inputs.name}}:${{inputs.tag}}"
2024-02-06 08:56:36 -05:00
registry: ${{inputs.registry}}
user: ${{inputs.user}}
pass: ${{inputs.pass}}
name: ${{inputs.name}}
tag: ${{env.VERSION}}
- name: Push as Latest
uses: ztimson/actions/docker/push@develop
if: ${{inputs.tag}} != latest && ${{github.ref_name}} == (git symbolic-ref refs/remotes/origin/HEAD --short | cut -c 7)
with:
2024-02-06 09:40:44 -05:00
from: "${{inputs.registry}}/${{inputs.name}}:${{inputs.tag}}"
2024-02-06 08:56:36 -05:00
registry: ${{inputs.registry}}
user: ${{inputs.user}}
pass: ${{inputs.pass}}
name: ${{inputs.name}}
tag: latest