mirror of
https://github.com/rclone/rclone.git
synced 2024-12-25 13:33:40 +08:00
3d0ee47aa2
This updates the action to use `docker/build-push-action` instead of `ilteoood/docker_buildx` which fixes the build problem in testing.
90 lines
3.6 KiB
YAML
90 lines
3.6 KiB
YAML
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}
|