Add gitea CI. #15
							
								
								
									
										331
									
								
								.gitea/workflows/all-builds.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										331
									
								
								.gitea/workflows/all-builds.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,331 @@
 | 
			
		||||
name: All Builds
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  pull_request:
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  QT_VERSION: 6.6.0
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  Qtk:
 | 
			
		||||
    env:
 | 
			
		||||
      CONFIG: -DQTK_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_CCACHE=OFF -DQTK_GUI=ON -DQTK_PLUGINS=OFF -DQTK_EXAMPLE=ON
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        os: [ubuntu-latest, windows-latest, macos-latest]
 | 
			
		||||
        include:
 | 
			
		||||
          - os: ubuntu-latest
 | 
			
		||||
            cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/$QT_VERSION/gcc_64/ $CONFIG
 | 
			
		||||
            flags: -j $(nproc)
 | 
			
		||||
          - os: windows-latest
 | 
			
		||||
            cmake: -DCMAKE_PREFIX_PATH=D:/a/qtk/qtk/Qt/$QT_VERSION/mingw81_64/ $CONFIG
 | 
			
		||||
            flags: ''
 | 
			
		||||
          - os: macos-latest
 | 
			
		||||
            cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/$QT_VERSION/gcc_64/ $CONFIG
 | 
			
		||||
            flags: -j $(nproc)
 | 
			
		||||
 | 
			
		||||
    runs-on: ${{ matrix.os }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
      - name: Install Debian packaging dependencies
 | 
			
		||||
        if: matrix.os == 'ubuntu-latest'
 | 
			
		||||
        run: |
 | 
			
		||||
          apt update -y
 | 
			
		||||
          apt install libxcb-cursor0 python3 -y
 | 
			
		||||
 | 
			
		||||
      - name: Install Qt
 | 
			
		||||
        uses: jurplel/install-qt-action@v2
 | 
			
		||||
        with:
 | 
			
		||||
          version: ${{ env.QT_VERSION }}
 | 
			
		||||
 | 
			
		||||
      # Windows
 | 
			
		||||
 | 
			
		||||
      - name: Chocolatey Action
 | 
			
		||||
        if: matrix.os == 'windows-latest'
 | 
			
		||||
        uses: crazy-max/ghaction-chocolatey@v2
 | 
			
		||||
        with:
 | 
			
		||||
          args: install pkgconfiglite --checksum e87b5ea3c9142256af60f2d5b917aa63b571e6a0 --checksum-type sha1
 | 
			
		||||
 | 
			
		||||
      - name: Configure Qtk Application
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: cmake -B build/ ${{ matrix.cmake }}
 | 
			
		||||
 | 
			
		||||
      - name: Build Qtk Application
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: cmake --build build/ --config Release --target qtk_gui ${{ matrix.flags }}
 | 
			
		||||
 | 
			
		||||
      - name: Build Qtk Example
 | 
			
		||||
        if: matrix.os != 'windows-latest'
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: cmake --build build/ --config Release --target qtk_example ${{ matrix.flags }}
 | 
			
		||||
 | 
			
		||||
      # Packaging
 | 
			
		||||
 | 
			
		||||
      - name: Install Qtk Application
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: cmake --install build/ --config Release --component qtk_gui
 | 
			
		||||
 | 
			
		||||
      - name: Package Qtk Application
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: cmake --build build/ --target package --config Release
 | 
			
		||||
 | 
			
		||||
      - name: Package Qtk (DEB)
 | 
			
		||||
        if: matrix.os == 'ubuntu-latest'
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
          cd build
 | 
			
		||||
          cpack -C Release -G DEB
 | 
			
		||||
 | 
			
		||||
      - name: Upload package artifacts (DEB)
 | 
			
		||||
        if: matrix.os == 'ubuntu-latest'
 | 
			
		||||
        uses: actions/upload-artifact@v3
 | 
			
		||||
        with:
 | 
			
		||||
          name: qtk-gui-${{ matrix.os }}
 | 
			
		||||
          path: |
 | 
			
		||||
            build/packages/*.deb
 | 
			
		||||
 | 
			
		||||
      - name: Package Qtk (WIN)
 | 
			
		||||
        if: matrix.os == 'windows-latest'
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
          cd build
 | 
			
		||||
          cpack -C Release -G NSIS
 | 
			
		||||
 | 
			
		||||
      - name: Upload package artifacts (WIN)
 | 
			
		||||
        if: matrix.os == 'windows-latest'
 | 
			
		||||
        uses: actions/upload-artifact@v3
 | 
			
		||||
        with:
 | 
			
		||||
          name: qtk-gui-${{ matrix.os }}
 | 
			
		||||
          path: |
 | 
			
		||||
            build/packages/*.exe
 | 
			
		||||
 | 
			
		||||
      - name: Package Qtk (OSX)
 | 
			
		||||
        if: matrix.os == 'macos-latest'
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
          cd build
 | 
			
		||||
          cpack -C Release -G TGZ
 | 
			
		||||
 | 
			
		||||
      - name: Upload package artifacts (OSX)
 | 
			
		||||
        if: matrix.os == 'macos-latest'
 | 
			
		||||
        uses: actions/upload-artifact@v3
 | 
			
		||||
        with:
 | 
			
		||||
          name: qtk-gui-${{ matrix.os }}
 | 
			
		||||
          path: |
 | 
			
		||||
            build/packages/*.tar.gz
 | 
			
		||||
 | 
			
		||||
      - name: Upload Qtk install directory
 | 
			
		||||
        uses: actions/upload-artifact@v3
 | 
			
		||||
        with:
 | 
			
		||||
          name: qtk-gui-${{ matrix.os }}-install
 | 
			
		||||
          path: install/*
 | 
			
		||||
 | 
			
		||||
# TODO: Enable after trimming resources.
 | 
			
		||||
#      - name: Package Qtk Application Sources
 | 
			
		||||
#        if: matrix.os != 'macos-latest'
 | 
			
		||||
#        shell: bash
 | 
			
		||||
#        run: |
 | 
			
		||||
#          cmake --build build/ --target package_source
 | 
			
		||||
#
 | 
			
		||||
#      - name: Upload package artifacts
 | 
			
		||||
#        uses: actions/upload-artifact@v3
 | 
			
		||||
#        with:
 | 
			
		||||
#          name: qtk-${{ matrix.os }}-packages
 | 
			
		||||
#          path: |
 | 
			
		||||
#            build/packages/*
 | 
			
		||||
#            !build/packages/_CPack_Packages/*
 | 
			
		||||
 | 
			
		||||
  Qtk-Library:
 | 
			
		||||
    env:
 | 
			
		||||
      CONFIG: -DQTK_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_CCACHE=OFF -DQTK_GUI=OFF -DQTK_PLUGINS=OFF -DQTK_EXAMPLE=OFF
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        os: [ubuntu-latest, windows-latest, macos-latest]
 | 
			
		||||
        include:
 | 
			
		||||
          - os: ubuntu-latest
 | 
			
		||||
            cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/$QT_VERSION/gcc_64/ $CONFIG
 | 
			
		||||
            flags: -j $(nproc)
 | 
			
		||||
          - os: windows-latest
 | 
			
		||||
            cmake: -DCMAKE_PREFIX_PATH=D:/a/qtk/qtk/Qt/$QT_VERSION/mingw81_64/ $CONFIG
 | 
			
		||||
            flags: ''
 | 
			
		||||
          - os: macos-latest
 | 
			
		||||
            cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/$QT_VERSION/gcc_64/ $CONFIG
 | 
			
		||||
            flags: -j $(nproc)
 | 
			
		||||
 | 
			
		||||
    runs-on: ${{ matrix.os }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
      - name: Install Qt
 | 
			
		||||
        uses: jurplel/install-qt-action@v2
 | 
			
		||||
        with:
 | 
			
		||||
          version: ${{ env.QT_VERSION }}
 | 
			
		||||
 | 
			
		||||
      # Windows
 | 
			
		||||
 | 
			
		||||
      - name: Chocolatey Action
 | 
			
		||||
        if: matrix.os == 'windows-latest'
 | 
			
		||||
        uses: crazy-max/ghaction-chocolatey@v2
 | 
			
		||||
        with:
 | 
			
		||||
          args: install pkgconfiglite --checksum e87b5ea3c9142256af60f2d5b917aa63b571e6a0 --checksum-type sha1
 | 
			
		||||
 | 
			
		||||
      - name: Configure Qtk Library
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: cmake -B build/ ${{ matrix.cmake }}
 | 
			
		||||
 | 
			
		||||
      - name: Build Qtk Library
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: cmake --build build/ --config Release --target qtk_library -- ${{ matrix.flags }}
 | 
			
		||||
 | 
			
		||||
      # Packaging
 | 
			
		||||
 | 
			
		||||
      - name: Install Qtk Library
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: cmake --install build/ --config Release --prefix=$(pwd)/install --component qtk_library
 | 
			
		||||
 | 
			
		||||
      - name: Package Qtk Library
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: cmake --build build/ --target package --config Release
 | 
			
		||||
 | 
			
		||||
      - name: Package Qtk Library (DEB)
 | 
			
		||||
        if: matrix.os == 'ubuntu-latest'
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
          cd build
 | 
			
		||||
          cpack -C Release -G DEB
 | 
			
		||||
 | 
			
		||||
      - name: Upload package artifacts (DEB)
 | 
			
		||||
        if: matrix.os == 'ubuntu-latest'
 | 
			
		||||
        uses: actions/upload-artifact@v3
 | 
			
		||||
        with:
 | 
			
		||||
          name: libqtk-${{ matrix.os }}
 | 
			
		||||
          path: |
 | 
			
		||||
            build/packages/*.deb
 | 
			
		||||
 | 
			
		||||
      - name: Package Qtk Library (WIN)
 | 
			
		||||
        if: matrix.os == 'windows-latest'
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
          cd build
 | 
			
		||||
          cpack -C Release -G NSIS
 | 
			
		||||
 | 
			
		||||
      - name: Upload package artifacts (WIN)
 | 
			
		||||
        if: matrix.os == 'windows-latest'
 | 
			
		||||
        uses: actions/upload-artifact@v3
 | 
			
		||||
        with:
 | 
			
		||||
          name: qtk-${{ matrix.os }}
 | 
			
		||||
          path: |
 | 
			
		||||
            build/packages/*.exe
 | 
			
		||||
 | 
			
		||||
      - name: Package Qtk Library (OSX)
 | 
			
		||||
        if: matrix.os == 'macos-latest'
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
          cd build
 | 
			
		||||
          cpack -C Release -G TGZ
 | 
			
		||||
 | 
			
		||||
      - name: Upload package artifacts (OSX)
 | 
			
		||||
        if: matrix.os == 'macos-latest'
 | 
			
		||||
        uses: actions/upload-artifact@v3
 | 
			
		||||
        with:
 | 
			
		||||
          name: qtk-${{ matrix.os }}
 | 
			
		||||
          path: |
 | 
			
		||||
            build/packages/*.tar.gz
 | 
			
		||||
 | 
			
		||||
      - name: Upload libqtk install
 | 
			
		||||
        uses: actions/upload-artifact@v3
 | 
			
		||||
        if: always()
 | 
			
		||||
        with:
 | 
			
		||||
          name: libqtk-${{ matrix.os }}-install
 | 
			
		||||
          path: install/*
 | 
			
		||||
 | 
			
		||||
  Qtk-Plugins:
 | 
			
		||||
    env:
 | 
			
		||||
      CONFIG: -DQTK_SUBMODULES=ON -DQTK_DEBUG=OFF -DQTK_CCACHE=OFF -DQTK_GUI=OFF -DQTK_PLUGINS=ON -DQTK_EXAMPLE=OFF
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        os: [ubuntu-latest, windows-latest, macos-latest]
 | 
			
		||||
        include:
 | 
			
		||||
          - os: ubuntu-latest
 | 
			
		||||
            cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/$QT_VERSION/gcc_64/ $CONFIG
 | 
			
		||||
            flags: -j $(nproc)
 | 
			
		||||
          - os: windows-latest
 | 
			
		||||
            cmake: -DCMAKE_PREFIX_PATH=D:/a/qtk/qtk/Qt/$QT_VERSION/mingw81_64/ $CONFIG
 | 
			
		||||
            flags: ''
 | 
			
		||||
          - os: macos-latest
 | 
			
		||||
            cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/$QT_VERSION/gcc_64/ $CONFIG
 | 
			
		||||
            flags: -j $(nproc)
 | 
			
		||||
 | 
			
		||||
    runs-on: ${{ matrix.os }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
      - name: Install Qt
 | 
			
		||||
        uses: jurplel/install-qt-action@v2
 | 
			
		||||
        with:
 | 
			
		||||
          version: ${{ env.QT_VERSION }}
 | 
			
		||||
 | 
			
		||||
      - name: Chocolatey Action
 | 
			
		||||
        if: matrix.os == 'windows-latest'
 | 
			
		||||
        uses: crazy-max/ghaction-chocolatey@v2
 | 
			
		||||
        with:
 | 
			
		||||
          args: install pkgconfiglite --checksum e87b5ea3c9142256af60f2d5b917aa63b571e6a0 --checksum-type sha1
 | 
			
		||||
 | 
			
		||||
      - name: Configure Qtk Plugins
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: cmake -B build/ ${{ matrix.cmake }}
 | 
			
		||||
 | 
			
		||||
      - name: Build Qtk Plugins
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: cmake --build build/ --config Release --target qtk_plugins -- ${{ matrix.flags }}
 | 
			
		||||
 | 
			
		||||
      # Packaging
 | 
			
		||||
 | 
			
		||||
      - name: Install Qtk Plugins
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: cmake --install build/ --config Release --component qtk_plugins
 | 
			
		||||
 | 
			
		||||
  Qtk-Assimp-Targets:
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        os: [ubuntu-latest, macos-latest]
 | 
			
		||||
        include:
 | 
			
		||||
          - os: ubuntu-latest
 | 
			
		||||
            cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/$QT_VERSION/gcc_64/
 | 
			
		||||
          - os: macos-latest
 | 
			
		||||
            cmake: -DCMAKE_PREFIX_PATH=/home/runner/work/qtk/Qt/$QT_VERSION/gcc_64/
 | 
			
		||||
 | 
			
		||||
    runs-on: ${{ matrix.os }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
      - name: Install Qt
 | 
			
		||||
        uses: jurplel/install-qt-action@v2
 | 
			
		||||
        with:
 | 
			
		||||
          version: ${{ env.QT_VERSION }}
 | 
			
		||||
 | 
			
		||||
      - name: Install Assimp MacOS
 | 
			
		||||
        if: matrix.os == 'macos-latest'
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
          brew install assimp
 | 
			
		||||
 | 
			
		||||
      - name: Install Assimp Ubuntu
 | 
			
		||||
        if: matrix.os == 'ubuntu-latest'
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
          apt install libassimp-dev
 | 
			
		||||
 | 
			
		||||
      - name: Configure Qtk
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: cmake -B build/ ${{ matrix.cmake }} -DQTK_CCACHE=OFF -DQTK_ASSIMP_NEW_INTERFACE=ON
 | 
			
		||||
 | 
			
		||||
      - name: Build Qtk
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: cmake --build build/ --config Release
 | 
			
		||||
							
								
								
									
										76
									
								
								.gitea/workflows/linting.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								.gitea/workflows/linting.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,76 @@
 | 
			
		||||
name: Linting
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  Tidy:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
      - name: Install Assimp Ubuntu
 | 
			
		||||
        run: |
 | 
			
		||||
          python3 --version
 | 
			
		||||
 | 
			
		||||
      - name: Install Assimp Ubuntu
 | 
			
		||||
        run: |
 | 
			
		||||
          apt update -y
 | 
			
		||||
          apt install libassimp-dev -y
 | 
			
		||||
 | 
			
		||||
      - name: Install Qt
 | 
			
		||||
        uses: jurplel/install-qt-action@v3
 | 
			
		||||
        with:
 | 
			
		||||
          version: '6.5.0'
 | 
			
		||||
 | 
			
		||||
      - name: Build Qtk
 | 
			
		||||
        run: |
 | 
			
		||||
          cmake -B build -DQTK_SUBMODULES=OFF -DQTK_CCACHE=OFF -DQTK_PLUGINS=OFF -DQTK_GUI=ON
 | 
			
		||||
          cmake --build build --target qtk_gui -- -j $(nproc)
 | 
			
		||||
 | 
			
		||||
      - uses: cpp-linter/cpp-linter-action@v2
 | 
			
		||||
        id: linter
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        with:
 | 
			
		||||
          # Use clang-tools 14
 | 
			
		||||
          version: '14'
 | 
			
		||||
          # Don't use clang-format with this action
 | 
			
		||||
          # + Set to `file` to use .clang-format (Qtk formats with clang 15)
 | 
			
		||||
          style: ''
 | 
			
		||||
          # Use .clang-tidy file
 | 
			
		||||
          tidy-checks: ''
 | 
			
		||||
          # Check the entire repo for source files to tidy
 | 
			
		||||
          files-changed-only: false
 | 
			
		||||
          # Ignore qtk build and external assimp directories
 | 
			
		||||
          ignore: '.github|build|extern/assimp/assimp'
 | 
			
		||||
          # Point to compile_commands.json produced by build
 | 
			
		||||
          database: 'build'
 | 
			
		||||
          # Use thread comments as feedback
 | 
			
		||||
          thread-comments: true
 | 
			
		||||
          # Show file annotations on GH
 | 
			
		||||
          file-annotations: true
 | 
			
		||||
 | 
			
		||||
      - name: Fail CI if checks don't pass
 | 
			
		||||
        if: steps.linter.outputs.checks-failed != 0
 | 
			
		||||
        run: exit 1
 | 
			
		||||
 | 
			
		||||
  Format:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    strategy:
 | 
			
		||||
      matrix:
 | 
			
		||||
        path:
 | 
			
		||||
          - 'src'
 | 
			
		||||
          - 'app'
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
      - name: Setup docker
 | 
			
		||||
        uses: crazy-max/ghaction-setup-docker@v3
 | 
			
		||||
 | 
			
		||||
      - name: clang-format Check
 | 
			
		||||
        uses: jidicula/clang-format-action@v4.9.0
 | 
			
		||||
        with:
 | 
			
		||||
          clang-format-version: '15'
 | 
			
		||||
          check-path: ${{ matrix.path }}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user