name: build_docker on: push: branches: [ main ] pull_request: branches: [ main ] concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: build_docker: name: Build Docker runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Docker meta id: meta uses: docker/metadata-action@v5 with: images: xhofe/alist - name: Docker meta with ffmpeg id: meta-ffmpeg uses: docker/metadata-action@v5 with: images: xhofe/alist flavor: | suffix=-ffmpeg,onlatest=true - uses: actions/setup-go@v5 with: go-version: 'stable' - name: Cache Musl id: cache-musl uses: actions/cache@v4 with: path: build/musl-libs key: docker-musl-libs - name: Download Musl Library if: steps.cache-musl.outputs.cache-hit != 'true' run: bash build.sh prepare docker-multiplatform - name: Build go binary run: bash build.sh dev docker-multiplatform - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub if: github.event_name == 'push' uses: docker/login-action@v3 with: username: xhofe password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push id: docker_build uses: docker/build-push-action@v6 with: context: . file: Dockerfile.ci push: ${{ github.event_name == 'push' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/386,linux/arm/v6,linux/s390x - name: Replace dockerfile tag run: | sed -i -e "s/latest/main/g" Dockerfile.ffmpeg - name: Build and push with ffmpeg id: docker_build_ffmpeg uses: docker/build-push-action@v6 with: context: . file: Dockerfile.ffmpeg push: ${{ github.event_name == 'push' }} tags: ${{ steps.meta-ffmpeg.outputs.tags }} labels: ${{ steps.meta-ffmpeg.outputs.labels }} platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/386,linux/arm/v6,linux/s390x build_docker_with_aria2: needs: build_docker name: Build docker with aria2 runs-on: ubuntu-latest if: github.event_name == 'push' steps: - name: Checkout repo uses: actions/checkout@v4 with: repository: alist-org/with_aria2 ref: main persist-credentials: false fetch-depth: 0 - name: Commit run: | git config --local user.email "bot@nn.ci" git config --local user.name "IlaBot" git commit --allow-empty -m "Trigger build for ${{ github.sha }}" - name: Push commit uses: ad-m/github-push-action@master with: github_token: ${{ secrets.MY_TOKEN }} branch: main repository: alist-org/with_aria2