586c5d97d5
- Replace Parity's GCP registry (europe-docker.pkg.dev/parity-ci-2024) with GitHub Container Registry (ghcr.io/pezkuwichain) - Add packages:write permission for GHCR push - Update zombienet-env to use pezkuwichain images - Fix paritypr references in zombienet tests
89 lines
3.0 KiB
YAML
89 lines
3.0 KiB
YAML
name: "build and push image"
|
|
inputs:
|
|
dockerfile:
|
|
description: "dockerfile to build"
|
|
required: true
|
|
image-name:
|
|
description: "image name (without registry)"
|
|
required: true
|
|
username:
|
|
required: false
|
|
default: ""
|
|
password:
|
|
required: false
|
|
default: ""
|
|
outputs:
|
|
branch:
|
|
description: "Branch name for the PR"
|
|
value: ${{ steps.branch.outputs.branch }}
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
# GHCR login (using GITHUB_TOKEN - automatically available)
|
|
- name: Login to GHCR
|
|
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.actor }}
|
|
password: ${{ github.token }}
|
|
|
|
- name: Set image version
|
|
id: version
|
|
shell: bash
|
|
run: |
|
|
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
|
|
echo "VERSION=${{ github.event.pull_request.head.sha }}" >> $GITHUB_OUTPUT
|
|
elif [[ "${{ github.event_name }}" == "merge_group" ]]; then
|
|
echo "VERSION=${GITHUB_SHA::8}" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "VERSION=${GITHUB_SHA::8}" >> $GITHUB_OUTPUT
|
|
fi
|
|
|
|
- name: build
|
|
shell: bash
|
|
env:
|
|
ZOMBIENET_IMAGE: "docker.io/pezkuwichain/zombienet:v1.3.105"
|
|
IMAGE_TAG: ghcr.io/pezkuwichain/${{ inputs.image-name }}
|
|
run: |
|
|
docker build \
|
|
--build-arg VCS_REF="${GITHUB_SHA}" \
|
|
--build-arg BUILD_DATE="$(date -u '+%Y-%m-%dT%H:%M:%SZ')" \
|
|
--build-arg IMAGE_NAME="${{ inputs.image-name }}" \
|
|
--build-arg ZOMBIENET_IMAGE="${ZOMBIENET_IMAGE}" \
|
|
-t "${{ env.IMAGE_TAG }}:${{ steps.version.outputs.VERSION }}" \
|
|
-t "${{ env.IMAGE_TAG }}:latest" \
|
|
-f ${{ inputs.dockerfile }} \
|
|
.
|
|
|
|
- name: push to GHCR
|
|
shell: bash
|
|
env:
|
|
IMAGE_TAG: ghcr.io/pezkuwichain/${{ inputs.image-name }}
|
|
run: |
|
|
docker push "${{ env.IMAGE_TAG }}:${{ steps.version.outputs.VERSION }}"
|
|
docker push "${{ env.IMAGE_TAG }}:latest"
|
|
|
|
- name: login to dockerhub
|
|
id: login
|
|
# Only login if credentials are provided
|
|
if: ${{ inputs.username != '' && inputs.password != '' }}
|
|
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0
|
|
with:
|
|
username: ${{ inputs.username }}
|
|
password: ${{ inputs.password }}
|
|
|
|
- name: push to dockerhub
|
|
shell: bash
|
|
if: ${{ inputs.username != '' && inputs.password != '' }}
|
|
env:
|
|
GHCR_TAG: ghcr.io/pezkuwichain/${{ inputs.image-name }}
|
|
DOCKERHUB_TAG: docker.io/pezkuwichain/${{ inputs.image-name }}
|
|
run: |
|
|
# Tag GHCR image for DockerHub
|
|
docker tag "${{ env.GHCR_TAG }}:${{ steps.version.outputs.VERSION }}" "${{ env.DOCKERHUB_TAG }}:${{ steps.version.outputs.VERSION }}"
|
|
docker tag "${{ env.GHCR_TAG }}:latest" "${{ env.DOCKERHUB_TAG }}:latest"
|
|
# Push to DockerHub
|
|
docker push "${{ env.DOCKERHUB_TAG }}:${{ steps.version.outputs.VERSION }}"
|
|
docker push "${{ env.DOCKERHUB_TAG }}:latest"
|