mirror of
https://github.com/mikefarah/yq.git
synced 2026-06-29 08:38:48 +00:00
With docker-hub starting to introduce a much stricter limit on anonymous pulls, it makes sense to also host the image in ghcr.io as well, allowing users flexibility in where they pull the docker images from. Also with the github action it makes more sense hosting the docker image on github infrastructure. I've introduced a github action for logging into registries as well.
101 lines
4.0 KiB
YAML
101 lines
4.0 KiB
YAML
name: Release Docker
|
|
|
|
on:
|
|
release:
|
|
types: [released]
|
|
|
|
# Allows you to run this workflow manually from the Actions tab
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
publishDocker:
|
|
environment: dockerhub
|
|
env:
|
|
IMAGE_NAME: mikefarah/yq
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v3
|
|
with:
|
|
platforms: all
|
|
|
|
- name: Set up Docker Buildx
|
|
id: buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
with:
|
|
version: latest
|
|
|
|
- name: Available platforms
|
|
run: echo ${{ steps.buildx.outputs.platforms }} && docker version
|
|
|
|
- name: Login to Docker Hub
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKER_USERNAME }}
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
|
|
- name: Login to GitHub Container Registry
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Build and push image
|
|
run: |
|
|
echo "GithubRef: ${GITHUB_REF}"
|
|
VERSION=${GITHUB_REF##*/}
|
|
echo "VERSION: ${VERSION}"
|
|
IMAGE_VERSION=${VERSION:1}
|
|
echo "IMAGE_VERSION: ${IMAGE_VERSION}"
|
|
|
|
PLATFORMS="linux/amd64,linux/ppc64le,linux/arm64,linux/arm/v7"
|
|
|
|
echo "Building and pushing version ${IMAGE_VERSION} of image ${IMAGE_NAME}"
|
|
docker buildx build \
|
|
--label "org.opencontainers.image.authors=https://github.com/mikefarah/yq/graphs/contributors" \
|
|
--label "org.opencontainers.image.created=$(date --rfc-3339=seconds)" \
|
|
--label "org.opencontainers.image.description=yq is a portable command-line data file processor" \
|
|
--label "org.opencontainers.image.documentation=https://mikefarah.gitbook.io/yq/" \
|
|
--label "org.opencontainers.image.licenses=MIT" \
|
|
--label "org.opencontainers.image.revision=$(git rev-parse HEAD)" \
|
|
--label "org.opencontainers.image.source=https://github.com/mikefarah/yq" \
|
|
--label "org.opencontainers.image.title=yq" \
|
|
--label "org.opencontainers.image.url=https://mikefarah.gitbook.io/yq/" \
|
|
--label "org.opencontainers.image.version=${IMAGE_VERSION}" \
|
|
--platform "${PLATFORMS}" \
|
|
--pull \
|
|
--push \
|
|
-t "${IMAGE_NAME}:${IMAGE_VERSION}" \
|
|
-t "${IMAGE_NAME}:4" \
|
|
-t "${IMAGE_NAME}:latest" \
|
|
-t "ghcr.io/${IMAGE_NAME}:${IMAGE_VERSION}" \
|
|
-t "ghcr.io/${IMAGE_NAME}:4" \
|
|
-t "ghcr.io/${IMAGE_NAME}:latest" \
|
|
.
|
|
|
|
cd github-action
|
|
docker buildx build \
|
|
--label "org.opencontainers.image.authors=https://github.com/mikefarah/yq/graphs/contributors" \
|
|
--label "org.opencontainers.image.created=$(date --rfc-3339=seconds)" \
|
|
--label "org.opencontainers.image.description=yq is a portable command-line data file processor" \
|
|
--label "org.opencontainers.image.documentation=https://mikefarah.gitbook.io/yq/" \
|
|
--label "org.opencontainers.image.licenses=MIT" \
|
|
--label "org.opencontainers.image.revision=$(git rev-parse HEAD)" \
|
|
--label "org.opencontainers.image.source=https://github.com/mikefarah/yq" \
|
|
--label "org.opencontainers.image.title=yq" \
|
|
--label "org.opencontainers.image.url=https://mikefarah.gitbook.io/yq/" \
|
|
--label "org.opencontainers.image.version=${IMAGE_VERSION}" \
|
|
--platform "${PLATFORMS}" \
|
|
--pull \
|
|
--push \
|
|
-t "${IMAGE_NAME}:${IMAGE_VERSION}-githubaction" \
|
|
-t "${IMAGE_NAME}:4-githubaction" \
|
|
-t "${IMAGE_NAME}:latest-githubaction" \
|
|
-t "ghcr.io/${IMAGE_NAME}:${IMAGE_VERSION}-githubaction" \
|
|
-t "ghrc.io/${IMAGE_NAME}:4-githubaction" \
|
|
-t "ghcr.io/${IMAGE_NAME}:latest-githubaction" \
|
|
.
|