diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000000..d5828599ab --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,65 @@ +on: + push: + paths: + - .github/workflows/build_levilamina.yml + - src/** + - xmake.lua + pull_request: + paths: + - .github/workflows/build_levilamina.yml + - src/** + - xmake.lua + workflow_dispatch: + +jobs: + build: + strategy: + matrix: + mode: + - release + - debug + tests: + - false + - true + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: xmake-io/github-action-setup-xmake@v1 + + - uses: actions/cache@v4 + with: + path: | + ~/AppData/Local/.xmake + key: xmake-${{ hashFiles('xmake.lua') }} + restore-keys: | + xmake- + + - run: | + xmake repo -u + + - run: | + xmake f -a x64 -m ${{ matrix.mode }} -p windows -v -y --tests=${{ matrix.tests }} + + - run: | + xmake -w -y + + - uses: actions/upload-artifact@v4 + with: + name: levilamina-${{ matrix.mode }}${{ matrix.tests == true && '-with-tests' || '' }}-windows-x64-${{ github.sha }} + path: | + build/windows/x64/${{ matrix.mode }}/ + + check-style: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + + - run: | + choco install llvm -y --version=17.0.6 + + - run: | + Get-ChildItem src/ -Filter *.cpp -Recurse | ForEach-Object { clang-format -i -Werror $_.FullName } + Get-ChildItem src/ -Filter *.h -Recurse | ForEach-Object { clang-format -i -Werror $_.FullName } diff --git a/.github/workflows/build_levilamina.yml b/.github/workflows/build_levilamina.yml deleted file mode 100644 index 7df086ccb3..0000000000 --- a/.github/workflows/build_levilamina.yml +++ /dev/null @@ -1,161 +0,0 @@ -on: - push: - paths: - - .github/workflows/build_levilamina.yml - - src/** - - xmake.lua - pull_request: - paths: - - .github/workflows/build_levilamina.yml - - src/** - - xmake.lua - workflow_dispatch: - -jobs: - build: - runs-on: windows-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - uses: xmake-io/github-action-setup-xmake@v1 - - - uses: actions/cache@v4 - with: - path: | - ~/AppData/Local/.xmake - key: xmake-${{ hashFiles('xmake.lua') }} - restore-keys: | - xmake- - - - run: | - xmake repo -u - - - run: | - xmake f -a x64 -m release -p windows -v -y - - - run: | - xmake -w -y - - - uses: actions/upload-artifact@v4 - with: - name: levilamina-windows-x64-${{ github.sha }} - path: | - build/windows/x64/release/LeviLamina.dll - build/windows/x64/release/LeviLamina.lib - build/windows/x64/release/LeviLamina.pdb - - build-debug: - runs-on: windows-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - uses: xmake-io/github-action-setup-xmake@v1 - - - uses: actions/cache@v4 - with: - path: | - ~/AppData/Local/.xmake - key: xmake-${{ hashFiles('xmake.lua') }} - restore-keys: | - xmake- - - - run: | - xmake repo -u - - - run: | - xmake f -a x64 -m debug -p windows -v -y - - - run: | - xmake -w -y - - - uses: actions/upload-artifact@v4 - with: - name: levilamina-debug-windows-x64-${{ github.sha }} - path: | - build/windows/x64/debug/LeviLamina.dll - build/windows/x64/debug/LeviLamina.lib - build/windows/x64/debug/LeviLamina.pdb - - build-with-tests: - runs-on: windows-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - uses: xmake-io/github-action-setup-xmake@v1 - - - uses: actions/cache@v4 - with: - path: | - ~/AppData/Local/.xmake - key: xmake-${{ hashFiles('xmake.lua') }} - restore-keys: | - xmake- - - - run: | - xmake repo -u - - - run: | - xmake f -a x64 -m release -p windows -v -y --tests=true - - - run: | - xmake -w -y - - - uses: actions/upload-artifact@v4 - with: - name: levilamina-with-tests-windows-x64-${{ github.sha }} - path: | - build/windows/x64/release/LeviLamina.dll - build/windows/x64/release/LeviLamina.lib - build/windows/x64/release/LeviLamina.pdb - - build-debug-with-tests: - runs-on: windows-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - uses: xmake-io/github-action-setup-xmake@v1 - - - uses: actions/cache@v4 - with: - path: | - ~/AppData/Local/.xmake - key: xmake-${{ hashFiles('xmake.lua') }} - restore-keys: | - xmake- - - - run: | - xmake repo -u - - - run: | - xmake f -a x64 -m debug -p windows -v -y --tests=true - - - run: | - xmake -w -y - - - uses: actions/upload-artifact@v4 - with: - name: levilamina-debug-with-tests-windows-x64-${{ github.sha }} - path: | - build/windows/x64/debug/LeviLamina.dll - build/windows/x64/debug/LeviLamina.lib - build/windows/x64/debug/LeviLamina.pdb - - check-style: - runs-on: windows-latest - steps: - - uses: actions/checkout@v4 - - - run: | - choco install llvm -y --version=17.0.6 - - - run: | - Get-ChildItem src/ -Filter *.cpp -Recurse | ForEach-Object { clang-format -i -Werror $_.FullName } - Get-ChildItem src/ -Filter *.h -Recurse | ForEach-Object { clang-format -i -Werror $_.FullName } diff --git a/.github/workflows/release_levilamina.yml b/.github/workflows/release.yml similarity index 95% rename from .github/workflows/release_levilamina.yml rename to .github/workflows/release.yml index 5f6e0375a1..fa498ceba5 100644 --- a/.github/workflows/release_levilamina.yml +++ b/.github/workflows/release.yml @@ -26,9 +26,7 @@ jobs: with: name: levilamina-windows-x64-${{ github.sha }} path: | - build/windows/x64/release/LeviLamina.dll - build/windows/x64/release/LeviLamina.lib - build/windows/x64/release/LeviLamina.pdb + build/windows/x64/release/ build-debug: runs-on: windows-latest