name: YYCC Linux Build on: [workflow_dispatch] jobs: linux-build: runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v4 - name: Install Dependencies shell: bash run: | sudo apt update sudo apt install -y build-essential cmake git - name: Fetch Google Test uses: actions/checkout@v4 with: repository: 'google/googletest' ref: 'v1.17.0' path: 'extern/googletest' - name: Build Google Test shell: bash run: | cd extern/googletest # Build Google Test source ../../.github/scripts/gtest/linux.sh # Record environment variable echo "GTest_ROOT=$GTest_ROOT" >> "$GITHUB_ENV" cd ../.. - name: Fetch Google Benchmark uses: actions/checkout@v4 with: repository: 'google/benchmark' ref: 'v1.9.4' path: 'extern/benchmark' - name: Build Google Benchmark shell: bash run: | cd extern/benchmark # Create symlink to googletest as required by benchmark ln -s ../googletest googletest # Build Google Benchmark source ../../.github/scripts/gbenchmark/linux.sh # Record environment variable echo "benchmark_ROOT=$benchmark_ROOT" >> "$GITHUB_ENV" cd ../.. - name: Build YYCC shell: bash run: | source ./.github/scripts/linux.sh - name: Run YYCC Test shell: bash run: | ./bin/install/bin/YYCCTest - name: Run YYCC Benchmark shell: bash run: | ./bin/install/bin/YYCCBenchmark - name: Upload Built Artifact uses: actions/upload-artifact@v4 with: name: YYCC-linux-build path: bin/install/* retention-days: 30