45 lines
1.2 KiB
YAML
45 lines
1.2 KiB
YAML
name: Get docker image environement variable
|
|
description: get a environement variable value from a docker image
|
|
inputs:
|
|
image:
|
|
description: "Image"
|
|
required: true
|
|
registry:
|
|
description: "Registry"
|
|
required: false
|
|
username:
|
|
description: "Username"
|
|
required: false
|
|
password:
|
|
description: "Password"
|
|
required: false
|
|
name:
|
|
description: "Environement variable's name"
|
|
required: true
|
|
outputs:
|
|
value:
|
|
description: "The environement variable's value"
|
|
value: ${{steps.extract-value.outputs.value}}
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: login
|
|
if: inputs.username != ''
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: ${{ inputs.registry}}
|
|
username: ${{ inputs.username }}
|
|
password: ${{ inputs.password }}
|
|
- name: Pull Docker image
|
|
shell: sh
|
|
run: docker pull ${{inputs.image}}
|
|
- name: Get variable value
|
|
id: extract-value
|
|
run: |
|
|
version=$(docker image inspect ${{inputs.image}} --format='{{range .Config.Env}}{{println .}}{{end}}' | grep ^${{inputs.name}}= | cut -d'=' -f2)
|
|
echo "${{inputs.name}}=$version"
|
|
echo "::set-output name=value::$version"
|
|
shell: bash
|
|
|