diff --git a/.github/workflows/build-linux-unstable.yml b/.github/workflows/build-linux-unstable.yml new file mode 100644 index 0000000..b1c35c5 --- /dev/null +++ b/.github/workflows/build-linux-unstable.yml @@ -0,0 +1,98 @@ +name: build-shotcut-linux-unstable + +on: + workflow_dispatch: + schedule: + # nightly + - cron: '0 8 * * *' + +env: + IMAGE_NAME: mltframework/shotcut-build:qt6.8.3-ubuntu22.04 + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + ref: qt6 + + - name: Build + run: | + echo Preparing version + echo $(date +"%y.%-m.%-d") > VERSION + VERSION=$(cat VERSION) + echo VERSION=$VERSION + FILENAME_VERSION=UNSTABLE-$VERSION + cd scripts + echo Making build script config file + echo CLEANUP=0 > build-shotcut.conf + echo SHOTCUT_VERSION=\"$VERSION\" >> build-shotcut.conf + echo SHOTCUT_HEAD=0 >> build-shotcut.conf + echo SHOTCUT_REVISION=origin/qt6 >> build-shotcut.conf + docker run -v $PWD:/root/shotcut $IMAGE_NAME + echo Renaming build artifacts + mv shotcut.txz shotcut-linux-x86_64-$FILENAME_VERSION.txz + mv src.txz shotcut-src-$FILENAME_VERSION.txz + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: linux-portable + path: | + scripts/shotcut-linux-x86_64-*.txz + + - name: Upload portable and source archives to S3 + if: ${{ github.repository_owner == 'mltframework' }} + uses: mltframework/s3cmd-action@v0 + with: + args: >- + --access_key=${{ secrets.AWS_ACCESS_KEY }} + --secret_key=${{ secrets.AWS_SECRET_KEY }} + --acl-public + --stop-on-error + put scripts/*.txz s3://builds.us.meltytech/shotcut/ + + - name: Package AppImage + run: | + sudo apt install desktop-file-utils + mkdir packaging/linux/Shotcut + cp VERSION packaging/linux/Shotcut/ + cd packaging/linux + wget https://raw.githubusercontent.com/probonopd/AppImages/master/pkg2appimage + bash -ex pkg2appimage appimage/appimage.yml + FILENAME_VERSION=UNSTABLE-$(cat Shotcut/VERSION) + mv out/*.AppImage out/shotcut-linux-x86_64-$FILENAME_VERSION.AppImage + + - name: Upload AppImage to S3 + if: ${{ github.repository_owner == 'mltframework' }} + uses: mltframework/s3cmd-action@v0 + with: + args: >- + --access_key=${{ secrets.AWS_ACCESS_KEY }} + --secret_key=${{ secrets.AWS_SECRET_KEY }} + --acl-public + --stop-on-error + put packaging/linux/out/*.AppImage s3://builds.us.meltytech/shotcut/ + + - name: Install Snapcraft + if: ${{ github.repository_owner == 'mltframework' }} + uses: samuelmeuli/action-snapcraft@v1.2.0 + with: + use_lxd: true + - name: Package snap + if: ${{ github.repository_owner == 'mltframework' }} + env: + SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_TOKEN }} + run: | + VERSION=$(cat VERSION) + mv scripts/shotcut-linux-x86_64-*.txz packaging/linux + cd packaging/linux + mkdir -p snap/gui + cp ../../icons/shotcut-logo-64.png snap/gui + sed 's|Icon=.*|Icon=${SNAP}/meta/gui/shotcut-logo-64.png|' org.shotcut.Shotcut.desktop > snap/gui/shotcut.desktop + FILENAME=$(ls *.txz) + sed "s/\$VERSION/${VERSION}/ ; s/\$FILENAME/${FILENAME}/" snapcraft.yaml.in > snap/snapcraft.yaml + sg lxd -c 'snapcraft --use-lxd' + snapcraft upload --release=edge shotcut_*.snap