WIP First pass security timer support #202
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: build | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: [master] | |
| tags-ignore: | |
| - '*' | |
| paths-ignore: | |
| - docs/* | |
| - .gitignore | |
| - .gitattributes | |
| - .clang-format | |
| - README.md | |
| - VERSION.txt | |
| - release.sh | |
| pull_request: | |
| branches: [master] | |
| paths-ignore: | |
| - docs/* | |
| - .gitignore | |
| - .gitattributes | |
| - .clang-format | |
| - README.md | |
| - VERSION.txt | |
| - release.sh | |
| merge_group: | |
| jobs: | |
| Windows-MSVC: | |
| name: Windows-MSVC ${{ matrix.arch }} | |
| runs-on: windows-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [ x86, x64 ] | |
| config: [Release] | |
| include: | |
| - arch: x86 | |
| platform: Win32 | |
| - arch: x64 | |
| platform: x64 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Configure CMake | |
| run: cmake -B ${{ github.workspace }}/build -DCMAKE_BUILD_TYPE=${{ matrix.config }} -G "Visual Studio 17 2022" -A ${{ matrix.platform }} | |
| - name: Build | |
| run: cmake --build ${{ github.workspace }}/build --config ${{ matrix.config }} --parallel | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: etf-artifacts-win-${{ matrix.arch }} | |
| path: ${{ github.workspace }}/build/etf | |
| Linux: | |
| name: Linux ${{ matrix.arch }} | |
| runs-on: ubuntu-22.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [x86, x86_64] | |
| config: [Release] | |
| steps: | |
| - name: Install dependencies | |
| if: matrix.arch == 'x86' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install gcc-multilib g++-multilib | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Configure CMake | |
| run: | | |
| if [ ${{ matrix.arch }} == "x86" ]; then | |
| cmake -B ${{ github.workspace }}/build -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DCMAKE_TOOLCHAIN_FILE=cmake/Toolchain-cross-x86-linux.cmake | |
| else | |
| cmake -B ${{ github.workspace }}/build -DCMAKE_BUILD_TYPE=${{ matrix.config }} | |
| fi | |
| - name: Build | |
| run: cmake --build ${{ github.workspace }}/build --config ${{ matrix.config }} --parallel | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: etf-artifacts-linux-${{ matrix.arch }} | |
| path: ${{ github.workspace }}/build/etf | |
| macOS: | |
| name: macOS ${{ matrix.arch }} | |
| runs-on: macos-13 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [x64] | |
| config: [Release] | |
| include: | |
| - arch: x64 | |
| platforms: "\"x86_64;arm64\"" | |
| osx-target: "10.12" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Configure CMake | |
| run: cmake -B ${{ github.workspace }}/build -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DCMAKE_OSX_ARCHITECTURES=${{ matrix.platforms }} -DCMAKE_OSX_DEPLOYMENT_TARGET=${{ matrix.osx-target }} | |
| - name: Build | |
| run: cmake --build ${{ github.workspace }}/build --config ${{ matrix.config }} --parallel | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: etf-artifacts-macos-${{ matrix.arch }} | |
| path: ${{ github.workspace }}/build/etf | |
| package: | |
| if: github.ref == 'refs/heads/master' && github.event_name == 'push' || github.event_name == 'workflow_dispatch' | |
| needs: [Windows-MSVC, Linux, macOS] | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Download artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| pattern: etf-artifacts-* | |
| merge-multiple: true | |
| path: ${{ github.workspace }}/build/etf | |
| - name: Pack release zip | |
| working-directory: ${{ github.workspace }}/build | |
| run: | | |
| cmake .. -DCMAKE_BUILD_TYPE=Release | |
| make mod_release | |
| - name: Upload release | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: etf-snapshot-release | |
| path: ${{ github.workspace }}/build/*.zip | |
| - name: Create latest build | |
| uses: czietz/action-automatic-releases@latest | |
| with: | |
| repo_token: ${{ secrets.GITHUB_TOKEN }} | |
| automatic_release_tag: "latest" | |
| prerelease: false | |
| title: Latest Build | |
| files: ${{ github.workspace }}/build/*.zip |