From 14f5634d6e2589f1ab8333370c29c24908ff99f6 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Wed, 14 Feb 2024 23:20:05 -0500 Subject: Add all remaining build types --- .github/workflows/release-build.yaml | 273 +++++++++++++++++++++++++++++++++++ 1 file changed, 273 insertions(+) (limited to '.github/workflows') diff --git a/.github/workflows/release-build.yaml b/.github/workflows/release-build.yaml index 41ee84d..146ff4b 100644 --- a/.github/workflows/release-build.yaml +++ b/.github/workflows/release-build.yaml @@ -12,6 +12,49 @@ permissions: contents: read jobs: + Docker: + runs-on: ubuntu-22.04 + continue-on-error: false # true in prod, false for testing + steps: + - name: "Set dated version for unstable builds" + id: version + run: |- + if [[ ${{ inputs.version }} == "master" ]]; then + echo "JELLYFIN_VERSION=$(date +'%Y%m%d%H')" >> $GITHUB_ENV + else + echo "JELLYFIN_VERSION=${{ inputs.version }}" >> $GITHUB_ENV + fi + + - name: "Install dependencies" + run: |- + sudo apt-get install --yes python3-git + + - name: "Checkout repository" + uses: actions/checkout@v3 + + - name: "Prepare repository" + run: |- + ./checkout.py ${{ inputs.version }} + + - name: "Run builder for Docker containers" + run: |- + sudo ./build.py ${{ env.JELLYFIN_VERSION }} docker + +# - name: "Push containers and manifests to DockerHub" +# uses: appleboy/ssh-action@v1.0.3 +# with: +# host: "${{ secrets.REPO_HOST }}" +# username: "${{ secrets.REPO_USER }}" +# key: "${{ secrets.REPO_KEY }}" +# debug: false +# script_stop: true +# script: | +# sudo mkdir -p /srv/repository/mirror/releases/server/debian/versions/${{ env.JELLYFIN_VERSION }}/${{ matrix.arch }} +# sudo mv -t /srv/repository/mirror/releases/server/debian/versions/${{ env.JELLYFIN_VERSION }}/${{ matrix.arch }}/ /srv/incoming/${{ env.JELLYFIN_VERSION }}/debian/${{ matrix.arch }}/${{ matrix.release }}/* +# if [[ ${{ inputs.version }} != "master" ]]; then +# sudo ln -s /srv/repository/mirror/releases/server/debian/versions/${{ env.JELLYFIN_VERSION }}/${{ matrix.arch }} /srv/repository/mirror/releases/server/debian/latest-server +# fi + Debian: runs-on: ubuntu-22.04 strategy: @@ -187,3 +230,233 @@ jobs: sudo ln -s /srv/repository/mirror/releases/server/ubuntu/versions/${{ env.JELLYFIN_VERSION }}/${{ matrix.arch }} /srv/repository/mirror/releases/server/ubuntu/latest-server fi + Linux: + runs-on: ubuntu-22.04 + strategy: + matrix: + arch: + - amd64 + - amd64-musl + - arm64 + - arm64-musl + - armhf + continue-on-error: false # true in prod, false for testing + steps: + - name: "Set dated version for unstable builds" + id: version + run: |- + if [[ ${{ inputs.version }} == "master" ]]; then + echo "JELLYFIN_VERSION=$(date +'%Y%m%d%H')" >> $GITHUB_ENV + else + echo "JELLYFIN_VERSION=${{ inputs.version }}" >> $GITHUB_ENV + fi + + - name: "Install dependencies" + run: |- + sudo apt-get install --yes python3-git + + - name: "Checkout repository" + uses: actions/checkout@v3 + + - name: "Prepare repository" + run: |- + ./checkout.py ${{ inputs.version }} + + - name: "Run builder for ${{ matrix.arch }}" + run: |- + sudo ./build.py ${{ env.JELLYFIN_VERSION }} linux ${{ matrix.arch }} + + - name: "Upload artifacts to repository server" + uses: appleboy/scp-action@v0.1.7 + with: + host: "${{ secrets.REPO_HOST }}" + username: "${{ secrets.REPO_USER }}" + key: "${{ secrets.REPO_KEY }}" + source: "out/linux/*" + strip_components: 2 + target: "/srv/incoming/${{ env.JELLYFIN_VERSION }}/linux/${{ matrix.arch }}" + + - name: "Move artifacts into repository" + uses: appleboy/ssh-action@v1.0.3 + with: + host: "${{ secrets.REPO_HOST }}" + username: "${{ secrets.REPO_USER }}" + key: "${{ secrets.REPO_KEY }}" + debug: false + script_stop: true + script: | + sudo mkdir -p /srv/repository/mirror/releases/server/linux/versions/${{ env.JELLYFIN_VERSION }}/${{ matrix.arch }} + sudo mv -t /srv/repository/mirror/releases/server/linux/versions/${{ env.JELLYFIN_VERSION }}/${{ matrix.arch }} /srv/incoming/${{ env.JELLYFIN_VERSION }}/linux/${{ matrix.arch }}/* + if [[ ${{ inputs.version }} != "master" ]]; then + sudo ln -s /srv/repository/mirror/releases/server/linux/versions/${{ env.JELLYFIN_VERSION }}/${{ matrix.arch }} /srv/repository/mirror/releases/server/linux/latest-server + fi + + Windows: + runs-on: ubuntu-22.04 + strategy: + matrix: + arch: + - amd64 + - arm64 + continue-on-error: false # true in prod, false for testing + steps: + - name: "Set dated version for unstable builds" + id: version + run: |- + if [[ ${{ inputs.version }} == "master" ]]; then + echo "JELLYFIN_VERSION=$(date +'%Y%m%d%H')" >> $GITHUB_ENV + else + echo "JELLYFIN_VERSION=${{ inputs.version }}" >> $GITHUB_ENV + fi + + - name: "Install dependencies" + run: |- + sudo apt-get install --yes python3-git + + - name: "Checkout repository" + uses: actions/checkout@v3 + + - name: "Prepare repository" + run: |- + ./checkout.py ${{ inputs.version }} + + - name: "Run builder for ${{ matrix.arch }}" + run: |- + sudo ./build.py ${{ env.JELLYFIN_VERSION }} windows ${{ matrix.arch }} + + - name: "Upload artifacts to repository server" + uses: appleboy/scp-action@v0.1.7 + with: + host: "${{ secrets.REPO_HOST }}" + username: "${{ secrets.REPO_USER }}" + key: "${{ secrets.REPO_KEY }}" + source: "out/windows/*" + strip_components: 2 + target: "/srv/incoming/${{ env.JELLYFIN_VERSION }}/windows/${{ matrix.arch }}" + + - name: "Move artifacts into repository" + uses: appleboy/ssh-action@v1.0.3 + with: + host: "${{ secrets.REPO_HOST }}" + username: "${{ secrets.REPO_USER }}" + key: "${{ secrets.REPO_KEY }}" + debug: false + script_stop: true + script: | + sudo mkdir -p /srv/repository/mirror/releases/server/windows/versions/${{ env.JELLYFIN_VERSION }}/${{ matrix.arch }} + sudo mv -t /srv/repository/mirror/releases/server/windows/versions/${{ env.JELLYFIN_VERSION }}/${{ matrix.arch }} /srv/incoming/${{ env.JELLYFIN_VERSION }}/windows/${{ matrix.arch }}/* + if [[ ${{ inputs.version }} != "master" ]]; then + sudo ln -s /srv/repository/mirror/releases/server/windows/versions/${{ env.JELLYFIN_VERSION }}/${{ matrix.arch }} /srv/repository/mirror/releases/server/windows/latest-server + fi + + MacOS: + runs-on: ubuntu-22.04 + strategy: + matrix: + arch: + - amd64 + - arm64 + continue-on-error: false # true in prod, false for testing + steps: + - name: "Set dated version for unstable builds" + id: version + run: |- + if [[ ${{ inputs.version }} == "master" ]]; then + echo "JELLYFIN_VERSION=$(date +'%Y%m%d%H')" >> $GITHUB_ENV + else + echo "JELLYFIN_VERSION=${{ inputs.version }}" >> $GITHUB_ENV + fi + + - name: "Install dependencies" + run: |- + sudo apt-get install --yes python3-git + + - name: "Checkout repository" + uses: actions/checkout@v3 + + - name: "Prepare repository" + run: |- + ./checkout.py ${{ inputs.version }} + + - name: "Run builder for ${{ matrix.version }} ${{ matrix.arch }}" + run: |- + sudo ./build.py ${{ env.JELLYFIN_VERSION }} macos ${{ matrix.arch }} + + - name: "Upload artifacts to repository server" + uses: appleboy/scp-action@v0.1.7 + with: + host: "${{ secrets.REPO_HOST }}" + username: "${{ secrets.REPO_USER }}" + key: "${{ secrets.REPO_KEY }}" + source: "out/macos/*" + strip_components: 2 + target: "/srv/incoming/${{ env.JELLYFIN_VERSION }}/macos/${{ matrix.arch }}" + + - name: "Move artifacts into repository" + uses: appleboy/ssh-action@v1.0.3 + with: + host: "${{ secrets.REPO_HOST }}" + username: "${{ secrets.REPO_USER }}" + key: "${{ secrets.REPO_KEY }}" + debug: false + script_stop: true + script: | + sudo mkdir -p /srv/repository/mirror/releases/server/macos/versions/${{ env.JELLYFIN_VERSION }}/${{ matrix.arch }} + sudo mv -t /srv/repository/mirror/releases/server/macos/versions/${{ env.JELLYFIN_VERSION }}/${{ matrix.arch }} /srv/incoming/${{ env.JELLYFIN_VERSION }}/macos/${{ matrix.arch }}/* + if [[ ${{ inputs.version }} != "master" ]]; then + sudo ln -s /srv/repository/mirror/releases/server/macos/versions/${{ env.JELLYFIN_VERSION }}/${{ matrix.arch }} /srv/repository/mirror/releases/server/macos/latest-server + fi + + Portable: + runs-on: ubuntu-22.04 + continue-on-error: false # true in prod, false for testing + steps: + - name: "Set dated version for unstable builds" + id: version + run: |- + if [[ ${{ inputs.version }} == "master" ]]; then + echo "JELLYFIN_VERSION=$(date +'%Y%m%d%H')" >> $GITHUB_ENV + else + echo "JELLYFIN_VERSION=${{ inputs.version }}" >> $GITHUB_ENV + fi + + - name: "Install dependencies" + run: |- + sudo apt-get install --yes python3-git + + - name: "Checkout repository" + uses: actions/checkout@v3 + + - name: "Prepare repository" + run: |- + ./checkout.py ${{ inputs.version }} + + - name: "Run builder for Portable" + run: |- + sudo ./build.py ${{ env.JELLYFIN_VERSION }} portable + + - name: "Upload artifacts to repository server" + uses: appleboy/scp-action@v0.1.7 + with: + host: "${{ secrets.REPO_HOST }}" + username: "${{ secrets.REPO_USER }}" + key: "${{ secrets.REPO_KEY }}" + source: "out/portable/*" + strip_components: 2 + target: "/srv/incoming/${{ env.JELLYFIN_VERSION }}/portable" + + - name: "Move artifacts into repository" + uses: appleboy/ssh-action@v1.0.3 + with: + host: "${{ secrets.REPO_HOST }}" + username: "${{ secrets.REPO_USER }}" + key: "${{ secrets.REPO_KEY }}" + debug: false + script_stop: true + script: | + sudo mkdir -p /srv/repository/mirror/releases/server/portable/versions/${{ env.JELLYFIN_VERSION }} + sudo mv -t /srv/repository/mirror/releases/server/portable/versions/${{ env.JELLYFIN_VERSION }} /srv/incoming/${{ env.JELLYFIN_VERSION }}/portable/* + if [[ ${{ inputs.version }} != "master" ]]; then + sudo ln -s /srv/repository/mirror/releases/server/portable/versions/${{ env.JELLYFIN_VERSION }} /srv/repository/mirror/releases/server/portable/latest-server + fi + -- cgit