|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- name: Deploy multi-architecture Docker images for transfer.sh with buildx
-
- on:
- schedule:
- - cron: '0 0 * * *' # everyday at midnight UTC
- pull_request:
- branches: master
- push:
- branches: master
- tags:
- - v*
-
- jobs:
- buildx:
- runs-on: ubuntu-latest
- steps:
- -
- name: Checkout
- uses: actions/checkout@v2
- -
- name: Prepare
- id: prepare
- run: |
- DOCKER_IMAGE=dutchcoders/transfer.sh
- DOCKER_PLATFORMS=linux/amd64,linux/arm/v7,linux/arm64,linux/386
- VERSION=edge
-
- if [[ $GITHUB_REF == refs/tags/* ]]; then
- VERSION=${GITHUB_REF#refs/tags/v}
- fi
-
- if [ "${{ github.event_name }}" = "schedule" ]; then
- VERSION=nightly
- fi
-
- TAGS="--tag ${DOCKER_IMAGE}:${VERSION}"
-
- if [ $VERSION = edge -o $VERSION = nightly ]; then
- TAGS="$TAGS --tag ${DOCKER_IMAGE}:latest"
- fi
-
- echo ::set-output name=docker_image::${DOCKER_IMAGE}
- echo ::set-output name=version::${VERSION}
- echo ::set-output name=buildx_args::--platform ${DOCKER_PLATFORMS} \
- --build-arg VERSION=${VERSION} \
- --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
- --build-arg VCS_REF=${GITHUB_SHA::8} \
- ${TAGS} .
- -
- name: Set up Docker Buildx
- uses: crazy-max/ghaction-docker-buildx@v3
- -
- name: Docker Buildx (build)
- run: |
- docker buildx build --no-cache --pull --output "type=image,push=false" ${{ steps.prepare.outputs.buildx_args }}
- -
- name: Docker Login
- if: success() && github.event_name != 'pull_request'
- env:
- DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
- DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
- run: |
- echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin
- -
- name: Docker Buildx (push)
- if: success() && github.event_name != 'pull_request'
- run: |
- docker buildx build --output "type=image,push=true" ${{ steps.prepare.outputs.buildx_args }}
- -
- name: Docker Check Manifest
- if: always() && github.event_name != 'pull_request'
- run: |
- docker run --rm mplatform/mquery ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }}
- -
- name: Clear
- if: always() && github.event_name != 'pull_request'
- run: |
- rm -f ${HOME}/.docker/config.json
|