From d4bd244b05d73b20d888c5d054d9dd18c4ecca3d Mon Sep 17 00:00:00 2001 From: SeeLook <seelook@gmail.com> Date: Wed, 12 Feb 2025 10:18:05 +0100 Subject: [PATCH] [CD/CI] github AppImage --- .github/workflows/make_deploy.yml | 98 +++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 .github/workflows/make_deploy.yml diff --git a/.github/workflows/make_deploy.yml b/.github/workflows/make_deploy.yml new file mode 100644 index 00000000..9e18b1ba --- /dev/null +++ b/.github/workflows/make_deploy.yml @@ -0,0 +1,98 @@ +name: Deploying + +on: + push: + paths-ignore: + - '**.md' + +env: + # VERSION: "3.0.6" + QT_VERSION_LINUX: 6.8.2 + # QT_VERSION_MACOS: 6.8.1 + # QT_VERSION_WINDOWS: 6.8.1 + EXECUTABLE: "Nootka" + APPLICATION: "Nootka" + UNIXNAME: "nootka" + QML_DIR: "../../src/qml" + PUBLISHER: "Tom Seelook" + DESCRIPTION: "Application to learn how to play from sheet music" + QT_MODULES: qtcore5compat qtconnectivity + +jobs: + build-linux-x86_64: + runs-on: ubuntu-22.04 + name: 'Linux (x86_64)' + steps: + - name: 'Checkout' + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set variables + run: | + VER=$(cat src/libs/core/nootkaconfig.h | awk -F" " '{ print $3 }' | sed 's/\"//g') + echo "NOOTKA_VERSION=$VER" >> $GITHUB_ENV + CNT=$(git rev-list HEAD --count) + echo "NOOTKA_COM_CNT=$CNT" >> $GITHUB_ENV + + - name: 'Install Qt' + uses: jurplel/install-qt-action@v4 + with: + version: ${{env.QT_VERSION_LINUX}} + modules: ${{env.QT_MODULES}} + cache: true + install-deps: 'true' + + - name: 'Install dependencies' + run: | + which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y ) + eval $(ssh-agent -s) + echo "$SSH_KEY_PRIVATE" | tr -d '\r' | ssh-add - + mkdir -p ~/.ssh + chmod 700 ~/.ssh + ssh-keyscan "$SSH_HOST" >> ~/.ssh/known_hosts + chmod 644 ~/.ssh/known_hosts + sudo apt-get update + apt-get install -y mesa-common-dev libsoundtouch-dev libfftw3-dev libasound2-dev libogg-dev libvorbis-dev libpulse-dev libjack-dev rsync + sudo apt-get install -y libgl1-mesa-dev libxkbcommon-x11-0 rpm libfuse2 fakeroot + + - name: 'Install CMake' + uses: lukka/get-cmake@latest + with: + useLocalCache: true + + - name: 'Configure with CMake' + run: | + mkdir build + cd build + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr + + - name: 'Build application' + run: | + cd build + cmake --build . --config Release -j 16 + + - name: 'Create AppImage' + run: | + cd "build/src" + wget https://github.com/dantti/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage + wget https://github.com/dantti/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage + chmod +x linuxdeploy-x86_64.AppImage + chmod +x linuxdeploy-plugin-qt-x86_64.AppImage + + export QML_SOURCES_PATHS="${{env.QML_DIR}}" + export QMAKE=/home/runner/work/${{env.EXECUTABLE}}/Qt/${{env.QT_VERSION_LINUX}}/gcc_64/bin/qmake + export PATH=/home/runner/work/${{env.EXECUTABLE}}/Qt/${{env.QT_VERSION_LINUX}}/gcc_64/libexec:$PATH + + ./linuxdeploy-x86_64.AppImage --appdir AppDir -e ${{env.UNIXNAME}} -i ../../picts/${{env.UNIXNAME}}.png -d ../../mime/${{env.UNIXNAME}}.desktop --plugin qt --output appimage + + rm linuxdeploy-x86_64.AppImage + rm linuxdeploy-plugin-qt-x86_64.AppImage + + mv *.AppImage ../../${{env.EXECUTABLE}}-${{env.VERSION}}-Linux-x86_64.AppImage + + - name: 'Upload artifact: AppImage' + uses: actions/upload-artifact@v4 + with: + name: ${{env.EXECUTABLE}}-${{env.VERSION}}-Linux-x86_64.AppImage + path: ${{env.EXECUTABLE}}-${{env.VERSION}}-Linux-x86_64.AppImage -- GitLab