diff --git a/.github/workflows/Build.yml b/.github/workflows/Build.yml deleted file mode 100644 index d4d168f..0000000 --- a/.github/workflows/Build.yml +++ /dev/null @@ -1,243 +0,0 @@ -#-------------------------------------------------------------------------------- -# Workflow configuration -#-------------------------------------------------------------------------------- - -name: Deploy -on: - push: # Run on push - paths-ignore: # File patterns to ignore - - '**.md' # Ignore changes to *.md files - - pull_request: # Run on pull-request - paths-ignore: # File-patterns to ignore - - '**.md' # Ignore changes to *.md files - -#-------------------------------------------------------------------------------- -# Define application name & version -#-------------------------------------------------------------------------------- - -env: - VERSION: "1.0.0" - EXECUTABLE: "RFID-TaskFlow" - APPLICATION: "RFID TaskFlow" - UNIXNAME: "rfid-taskflow" - QMAKE_PROJECT: "RFID-TaskFlow.pro" - QML_DIR_NIX: "qml" - QML_DIR_WIN: "qml" - PUBLISHER: "Matusica S.A. de C.V." - QT_VERSION: 6.4.1 - QT_MODULES: qtserialport qtconnectivity qtmultimedia - QMAKE: qmake6 - CORES: 12 - -#-------------------------------------------------------------------------------- -# Workflow jobs (GNU/Linux, macOS & Windows) -#-------------------------------------------------------------------------------- - -jobs: - build-linux: - runs-on: ubuntu-20.04 - name: '🐧 Ubuntu 20.04' - steps: - - name: '🧰 Checkout' - uses: actions/checkout@v2 - - - name: '⚙️ Cache Qt' - id: cache-qt - uses: actions/cache@v1 - with: - path: ../Qt - key: ${{runner.os}}-qt${{env.QT_VERSION}} - - - name: '⚙️ Install Qt' - uses: jurplel/install-qt-action@v2 - with: - version: ${{env.QT_VERSION}} - modules: ${{env.QT_MODULES}} - aqtversion: '==2.0.0' - cached: ${{steps.cache-qt.outputs.cache-hit}} - - # Install additional dependencies, stolen from: - # https://github.com/mapeditor/tiled/blob/master/.github/workflows/packages.yml - - name: '⚙️ Install dependencies' - run: | - sudo apt-get update - sudo apt-get install libgl1-mesa-dev libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libzstd-dev libssl-dev libusb-dev - sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio - - - name: '🚧 Compile application' - run: | - ${{env.QMAKE}} ${{env.QMAKE_PROJECT}} CONFIG+=release PREFIX=/usr - make -j${{env.CORES}} - - - name: '⚙️ Install linuxdeploy' - run: | - wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage - wget https://github.com/linuxdeploy/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 - - - name: '📦 Create AppImage' - run: | - export QML_SOURCES_PATHS="${{env.QML_DIR_NIX}}" - export QMAKE=/home/runner/work/${{env.EXECUTABLE}}/Qt/${{env.QT_VERSION}}/gcc_64/bin/qmake6 - export PATH=/home/runner/work/${{env.EXECUTABLE}}/Qt/${{env.QT_VERSION}}/gcc_64/libexec:$PATH - ./linuxdeploy-x86_64.AppImage --appdir AppDir -e ${{env.UNIXNAME}} -i deploy/linux/${{env.UNIXNAME}}.png -d deploy/linux/${{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.AppImage - - - name: '📤 Upload artifact: AppImage' - uses: actions/upload-artifact@v2 - with: - name: ${{env.EXECUTABLE}}-${{env.VERSION}}-Linux.AppImage - path: ${{env.EXECUTABLE}}-${{env.VERSION}}-Linux.AppImage - - # macOS build - build-mac: - runs-on: macos-latest - name: '🍎 macOS' - steps: - - name: '🧰 Checkout' - uses: actions/checkout@v2 - - - name: '⚙️ Cache Qt' - id: cache-qt - uses: actions/cache@v1 - with: - path: ../Qt - key: ${{runner.os}}-qt${{env.QT_VERSION}} - - - name: '⚙️ Install Qt' - uses: jurplel/install-qt-action@v2 - with: - version: ${{env.QT_VERSION}} - modules: ${{env.QT_MODULES}} - aqtversion: '==2.0.0' - cached: ${{steps.cache-qt.outputs.cache-hit}} - - - name: '🚧 Compile application' - run: | - ${{env.QMAKE}} ${{env.QMAKE_PROJECT}} CONFIG+=release PREFIX=/usr - make -j${{env.CORES}} - - - name: '📦 Package application (macdeployqt and zipfile)' - run: | - macdeployqt ${{env.EXECUTABLE}}.app -qmldir="${{env.QML_DIR_NIX}}" - mv "${{env.EXECUTABLE}}.app" "${{env.APPLICATION}}.app" - - # ZIP application "%AppName%-%Version%-macOS.zip" - # We use ditto instead of zip to use the same commands as Finder - ditto -c -k --sequesterRsrc --keepParent "${{env.APPLICATION}}.app" ${{env.EXECUTABLE}}-${{env.VERSION}}-macOS.zip - - - name: '📤 Upload artifact: ZIP' - uses: actions/upload-artifact@v2 - with: - name: ${{env.EXECUTABLE}}-${{env.VERSION}}-macOS.zip - path: ${{env.EXECUTABLE}}-${{env.VERSION}}-macOS.zip - - # Windows build - build-windows: - runs-on: windows-latest - name: '🧊 Windows' - steps: - - name: '🧰 Checkout' - uses: actions/checkout@v2 - - - name: '⚙️ Configure MSVC' - uses: ilammy/msvc-dev-cmd@v1 - with: - arch: x64 - spectre: true - - - name: '⚙️ Cache Qt' - id: cache-qt - uses: actions/cache@v1 - with: - path: ../Qt - key: ${{runner.os}}-qt${{env.QT_VERSION}} - - - name: '⚙️ Install Qt' - uses: jurplel/install-qt-action@v2 - with: - version: ${{env.QT_VERSION}} - modules: ${{env.QT_MODULES}} - aqtversion: '==2.0.0' - cached: ${{steps.cache-qt.outputs.cache-hit}} - - - name: '🚧 Compile application' - run: | - ${{env.QMAKE}} ${{env.QMAKE_PROJECT}} CONFIG+=release - nmake - - - name: '📦 Package application (windeployqt)' - run: | - mkdir bin - move release/${{env.EXECUTABLE}}.exe bin - windeployqt bin/${{env.EXECUTABLE}}.exe -qmldir="${{env.QML_DIR_WIN}}" --compiler-runtime - mkdir "${{env.APPLICATION}}" - move bin "${{env.APPLICATION}}" - xcopy deploy\windows\resources\icon.ico "${{env.APPLICATION}}" - #xcopy deploy\windows\openssl\*.dll "${{env.APPLICATION}}\bin" - move "${{env.APPLICATION}}" deploy\windows\nsis\ - - - name: '📦 Portable application' - run: | - mkdir "${{env.EXECUTABLE}}-${{env.VERSION}}-Windows" - xcopy "deploy\windows\nsis\${{env.APPLICATION}}\icon.ico" "${{env.EXECUTABLE}}-${{env.VERSION}}-Windows" - xcopy "deploy\windows\nsis\${{env.APPLICATION}}\bin" "${{env.EXECUTABLE}}-${{env.VERSION}}-Windows" /E - Compress-Archive -Path "${{env.EXECUTABLE}}-${{env.VERSION}}-Windows" -DestinationPath "${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.zip" - - - name: '📦 Make NSIS installer' - uses: joncloud/makensis-action@v3.6 - with: - script-file: deploy/windows/nsis/setup.nsi - - - name: '📦 Check NSIS version & hash' - run: | - makensis /HDRINFO - - - name: '📦 Rename installer' - run: | - dir - cd deploy/windows/nsis/ - dir - ren *.exe ${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.exe - - - name: '📤 Upload artifact: NSIS installer' - uses: actions/upload-artifact@v2 - with: - name: ${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.exe - path: deploy/windows/nsis/${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.exe - - - name: '📤 Upload artifact: Portable application' - uses: actions/upload-artifact@v2 - with: - name: ${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.zip - path: ${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.zip - - # Upload continuous build - upload: - name: '🗂 Create release and upload artifacts' - needs: - - build-mac - - build-windows - - build-linux - runs-on: ubuntu-20.04 - steps: - - name: '📥 Download artifacts' - uses: actions/download-artifact@v2 - - name: '🗂 Inspect directory after downloading artifacts' - run: ls -alFR - - name: '🚀 Create release and upload artifacts' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - wget -q https://github.com/TheAssassin/pyuploadtool/releases/download/continuous/pyuploadtool-x86_64.AppImage - chmod +x pyuploadtool-x86_64.AppImage - ./pyuploadtool-x86_64.AppImage **/${{env.EXECUTABLE}}-${{env.VERSION}}-Linux.AppImage - ./pyuploadtool-x86_64.AppImage **/${{env.EXECUTABLE}}-${{env.VERSION}}-macOS.zip - ./pyuploadtool-x86_64.AppImage **/${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.exe - ./pyuploadtool-x86_64.AppImage **/${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.zip - -