name: Test on: workflow_dispatch: pull_request: push: branches: [main] jobs: test-package: name: Test Package runs-on: ubuntu-24.04 steps: - name: Checkout Project uses: actions/checkout@v4.2.2 - name: Setup Node.js uses: actions/setup-node@v4.2.0 with: node-version-file: .nvmrc - name: Setup pnpm uses: threeal/setup-pnpm-action@v1.0.0 - name: Install Dependencies run: pnpm install - name: Test Package run: pnpm test test-action: name: Test Action runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-24.04, macos-14, windows-2022] steps: - name: Checkout Sample Project uses: actions/checkout@v4.2.2 with: repository: threeal/cpp-starter ref: v1.0.0 - name: Checkout Action uses: actions/checkout@v4.2.2 with: path: cmake-action sparse-checkout: | action.yml dist sparse-checkout-cone-mode: false - name: Build Sample Project id: cmake-action uses: ./cmake-action - name: Run Sample Project run: ${{ steps.cmake-action.outputs.build-dir }}/${{ matrix.os == 'windows-2022' && 'Debug/generate_sequence.exe' || 'generate_sequence' }} 5 test-action-with-specified-dirs: name: Test Action With Specified Directories runs-on: ubuntu-24.04 steps: - name: Checkout Sample Project uses: actions/checkout@v4.2.2 with: repository: threeal/cpp-starter ref: v1.0.0 path: project - name: Checkout Action uses: actions/checkout@v4.2.2 with: path: cmake-action sparse-checkout: | action.yml dist sparse-checkout-cone-mode: false - name: Build Sample Project id: cmake-action uses: ./cmake-action with: source-dir: project build-dir: output - name: Run Sample Project run: output/generate_sequence 5 test-action-without-run-build: name: Test Action Without Run Build runs-on: ubuntu-24.04 steps: - name: Checkout Sample Project uses: actions/checkout@v4.2.2 with: repository: threeal/cpp-starter ref: v1.0.0 - name: Checkout Action uses: actions/checkout@v4.2.2 with: path: cmake-action sparse-checkout: | action.yml dist sparse-checkout-cone-mode: false - name: Modify Sample Project run: echo 'invalid' >> src/main.cpp - name: Configure Sample Project uses: ./cmake-action with: run-build: false test-action-with-additional-options: name: Test Action With Additional Options runs-on: ubuntu-24.04 steps: - name: Checkout Sample Project uses: actions/checkout@v4.2.2 with: repository: threeal/cpp-starter ref: v1.0.0 - name: Checkout Action uses: actions/checkout@v4.2.2 with: path: cmake-action sparse-checkout: | action.yml dist sparse-checkout-cone-mode: false - name: Build Sample Project uses: ./cmake-action with: options: BUILD_TESTING=ON - name: Test Sample Project uses: threeal/ctest-action@v1.1.0 test-action-with-custom-generator: name: Test Action With Custom Generator runs-on: ubuntu-24.04 steps: - name: Checkout Sample Project uses: actions/checkout@v4.2.2 with: repository: threeal/cpp-starter ref: v1.0.0 - name: Checkout Action uses: actions/checkout@v4.2.2 with: path: cmake-action sparse-checkout: | action.yml dist sparse-checkout-cone-mode: false - name: Setup Ninja uses: seanmiddleditch/gha-setup-ninja@v6 - name: Configure Sample Project id: cmake-action uses: ./cmake-action with: generator: Ninja run-build: false - name: Build Sample Project run: ninja -C ${{ steps.cmake-action.outputs.build-dir }}