name: Docker release build on: release: types: [published] jobs: build: if: github.repository == 'rclone/rclone' runs-on: ubuntu-latest name: Build image job steps: - name: Free some space shell: bash run: | df -h . # Remove android SDK sudo rm -rf /usr/local/lib/android || true # Remove .net runtime sudo rm -rf /usr/share/dotnet || true df -h . - name: Checkout master uses: actions/checkout@v4 with: fetch-depth: 0 - name: Get actual patch version id: actual_patch_version run: echo ::set-output name=ACTUAL_PATCH_VERSION::$(echo $GITHUB_REF | cut -d / -f 3 | sed 's/v//g') - name: Get actual minor version id: actual_minor_version run: echo ::set-output name=ACTUAL_MINOR_VERSION::$(echo $GITHUB_REF | cut -d / -f 3 | sed 's/v//g' | cut -d "." -f 1,2) - name: Get actual major version id: actual_major_version run: echo ::set-output name=ACTUAL_MAJOR_VERSION::$(echo $GITHUB_REF | cut -d / -f 3 | sed 's/v//g' | cut -d "." -f 1) - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_HUB_USER }} password: ${{ secrets.DOCKER_HUB_PASSWORD }} - name: Build and publish image uses: docker/build-push-action@v6 with: file: Dockerfile context: . platforms: linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/arm/v6 push: true tags: | rclone/rclone:latest rclone/rclone:${{ steps.actual_patch_version.outputs.ACTUAL_PATCH_VERSION }} rclone/rclone:${{ steps.actual_minor_version.outputs.ACTUAL_MINOR_VERSION }} rclone/rclone:${{ steps.actual_major_version.outputs.ACTUAL_MAJOR_VERSION }} build_docker_volume_plugin: if: github.repository == 'rclone/rclone' needs: build runs-on: ubuntu-latest name: Build docker plugin job steps: - name: Free some space shell: bash run: | df -h . # Remove android SDK sudo rm -rf /usr/local/lib/android || true # Remove .net runtime sudo rm -rf /usr/share/dotnet || true df -h . - name: Checkout master uses: actions/checkout@v4 with: fetch-depth: 0 - name: Build and publish docker plugin shell: bash run: | VER=${GITHUB_REF#refs/tags/} PLUGIN_USER=rclone docker login --username ${{ secrets.DOCKER_HUB_USER }} \ --password-stdin <<< "${{ secrets.DOCKER_HUB_PASSWORD }}" for PLUGIN_ARCH in amd64 arm64 arm/v7 arm/v6 ;do export PLUGIN_USER PLUGIN_ARCH make docker-plugin PLUGIN_TAG=${PLUGIN_ARCH/\//-} make docker-plugin PLUGIN_TAG=${PLUGIN_ARCH/\//-}-${VER#v} done make docker-plugin PLUGIN_ARCH=amd64 PLUGIN_TAG=latest make docker-plugin PLUGIN_ARCH=amd64 PLUGIN_TAG=${VER#v}