diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 0000000..12ea9ca --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,77 @@ +on: [push, pull_request] + +name: Build + +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v5 + with: + persist-credentials: true + + - name: Checkout lfs + run: | + git lfs install --local + AUTH=$(git config --local http.${{ github.server_url }}/.extraheader) + git config --local --unset http.${{ github.server_url }}/.extraheader + git config --local http.${{ github.server_url }}/${{ github.repository }}.git/info/lfs/objects/batch.extraheader "$AUTH" + git lfs pull + + - name: Apt update + run: sudo apt update + + - name: Installing build chain + run: sudo apt-get install pigz ninja-build g++ clang pkg-config cmake libtbb-dev + -y; + + - name: Cache CPM + uses: actions/cache@v5 + with: + path: "~/.cache/CPM/" + key: ${{ runner.os }}-CPM + + - name: Configure debug + run: mkdir -p build; mkdir -p build/debug; cd build/debug; cmake ../../ -G Ninja + -DCMAKE_BUILD_TYPE=Debug; + + - name: Configure Release + run: mkdir -p build; mkdir -p build/Release; cd build/Release; cmake ../../ -G + Ninja -DCMAKE_BUILD_TYPE=Release; + + - name: Configure MinSizeRel + run: mkdir -p build; mkdir -p build/minsizerel; cd build/minsizerel; cmake + ../../ -G Ninja -DCMAKE_BUILD_TYPE=MinSizeRel; + + - name: Configure RelWithDeb + run: mkdir -p build; mkdir -p build/relwithdeb; cd build/relwithdeb; cmake + ../../ -G Ninja -DCMAKE_BUILD_TYPE=RelWithDeb; + + - name: Build debug + run: cd build/debug; ninja; + + - name: Build Release + run: cd build/release; ninja; + + - name: Build RelWithDeb + run: cd build/relwithdeb; ninja; + + - name: Build MinSizeRel + run: cd build/MinSizeRel; ninja; + + - name: Packaging + run: |- + tar -I 'pigz -9' -cf buildscript-debug-amd64.tar.gz --transform 's,^,build-script/,' build/debug LICENSE; + tar -I 'pigz -9' -cf buildscript-release-amd64.tar.gz --transform 's,^,build-script/,' build/release LICENSE; + tar -I 'pigz -9' -cf buildscript-relwithdeb-amd64.tar.gz --transform 's,^,build-script/,' build/relwithdeb LICENSE; + tar -I 'pigz -9' -cf buildscript-minsizerel-amd64.tar.gz --transform 's,^,build-script/,' build/minsizerel LICENSE; + + - uses: akkuman/gitea-release-action@v1 + with: + files: |- + buildscript-debug-amd64.tar.gz + buildscript-release-amd64.tar.gz + buildscript-relwithdeb-amd64.tar.gz + buildscript-minsizerel-amd64.tar.gz