name: MoviePilot Builder v2 on: workflow_dispatch: push: branches: - v2 paths: - 'version.py' jobs: Docker-build: runs-on: ubuntu-latest name: Build Docker Image steps: - name: Checkout uses: actions/checkout@v4 - name: Release version id: release_version run: | app_version=$(cat version.py |sed -ne "s/APP_VERSION\s=\s'v\(.*\)'/\1/gp") echo "app_version=$app_version" >> $GITHUB_ENV - name: Docker Meta id: meta uses: docker/metadata-action@v5 with: images: | ${{ secrets.DOCKER_USERNAME }}/moviepilot-v2 ${{ secrets.DOCKER_USERNAME }}/moviepilot ghcr.io/${{ github.repository }} tags: | type=raw,value=${{ env.app_version }} type=raw,value=latest - name: Set Up QEMU uses: docker/setup-qemu-action@v3 - name: Set Up Buildx uses: docker/setup-buildx-action@v3 - name: Login DockerHub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Login GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build Image uses: docker/build-push-action@v5 with: context: . file: docker/Dockerfile platforms: | linux/amd64 linux/arm64/v8 push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha, scope=${{ github.workflow }}-docker cache-to: type=gha, scope=${{ github.workflow }}-docker - name: Get existing release body id: get_release_body continue-on-error: true run: | release_body=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ "https://api.github.com/repos/${{ github.repository }}/releases/tags/v${{ env.app_version }}" | \ jq -r '.body // ""') echo "RELEASE_BODY<> $GITHUB_ENV echo "$release_body" >> $GITHUB_ENV echo "EOF" >> $GITHUB_ENV - name: Delete Release uses: dev-drprasad/delete-tag-and-release@v1.1 continue-on-error: true with: tag_name: v${{ env.app_version }} delete_release: true github_token: ${{ secrets.GITHUB_TOKEN }} - name: Generate Release uses: softprops/action-gh-release@v2 with: tag_name: v${{ env.app_version }} name: v${{ env.app_version }} body: ${{ env.RELEASE_BODY }} draft: false prerelease: false make_latest: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}