diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 9c7e940..92417b1 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -20,20 +20,20 @@ jobs: - name: Update Yarn run: corepack enable && yarn set version stable - - name: Cache deps + - name: Cache Dependencies uses: actions/cache@v3.3.2 with: path: .yarn key: yarn-${{ runner.os }}-${{ hashFiles('yarn.lock') }} - - name: Install deps + - name: Install Dependencies run: yarn install - - name: Check lib + - name: Check Package run: yarn check - - name: Bundle dist + - name: Bundle Package run: yarn bundle - - name: Check diff + - name: Check Differences run: git diff --exit-code HEAD diff --git a/.github/workflows/test.yml b/.github/workflows/test.yaml similarity index 75% rename from .github/workflows/test.yml rename to .github/workflows/test.yaml index df09cae..4cdc0f4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yaml @@ -3,7 +3,7 @@ on: workflow_dispatch: pull_request: push: - branches: [latest, main] + branches: [main] jobs: test-package: name: Test Package @@ -23,78 +23,81 @@ jobs: with: node-version: latest - - name: Cache deps + - name: Cache Dependencies uses: actions/cache@v3.3.2 with: path: .yarn key: yarn-${{ runner.os }}-${{ hashFiles('yarn.lock') }} - - name: Install deps + - name: Install Dependencies run: corepack enable && yarn install - - name: Test lib + - name: Test Package run: yarn test - default-usage: + test-action: + name: Test Action runs-on: ${{ matrix.os }}-latest strategy: fail-fast: false matrix: os: [windows, ubuntu, macos] steps: - - name: Checkout the repository + - name: Checkout uses: actions/checkout@v4.1.1 - - name: Move the test project to the working directory + - name: Move Project run: mv test/* . - - name: Use the action + - name: Configure Project id: cmake-action uses: ./ - - name: Try to test the project + - name: Try to Test Project id: failed-step continue-on-error: true run: ctest --test-dir ${{ steps.cmake-action.outputs.build-dir }} --output-on-failure --no-tests=error -R hello_world ${{ matrix.os == 'windows' && '-C Debug' || '' }} - - name: Check on success + - name: Previous Step Should Failed if: steps.failed-step.outcome == 'success' run: exit 1 - - name: Build and test the project + - name: Build and Test Project run: | cmake --build ${{ steps.cmake-action.outputs.build-dir }} ctest --test-dir ${{ steps.cmake-action.outputs.build-dir }} --output-on-failure --no-tests=error -R hello_world ${{ matrix.os == 'windows' && '-C Debug' || '' }} - specified-dir-usage: + test-action-with-specified-dirs: + name: Test Action With Specified Directories runs-on: ubuntu-latest steps: - - name: Checkout the repository + - name: Checkout uses: actions/checkout@v4.1.1 - - name: Use the action with specified directories + - name: Configure Project id: cmake-action uses: ./ with: source-dir: test build-dir: output - - name: Check if the default build directory does not exist + - name: Default Build Directory Should Not Exist shell: bash run: test ! -e build && test ! -e test/build - - name: Build and test the project + - name: Build and Test Project run: | cmake --build ${{ steps.cmake-action.outputs.build-dir }} ctest --test-dir ${{ steps.cmake-action.outputs.build-dir }} --output-on-failure --no-tests=error -R hello_world - run-build-usage: + test-action-with-run-build: + name: Test Action With Run Build runs-on: ubuntu-latest steps: - - name: Checkout the repository + - name: Checkout uses: actions/checkout@v4.1.1 - - name: Use the action with run build enabled + - name: Configure and Build Project id: cmake-action uses: ./ with: @@ -102,33 +105,35 @@ jobs: run-build: true build-args: --target test_c --target test_cpp - - name: Test the project + - name: Test Project run: ctest --test-dir ${{ steps.cmake-action.outputs.build-dir }} --output-on-failure --no-tests=error -R test - run-test-usage: + test-action-with-run-test: + name: Test Action With Run Test runs-on: ubuntu-latest steps: - - name: Checkout the repository + - name: Checkout uses: actions/checkout@v4.1.1 - - name: Use the action with run test enabled + - name: Configure, Build, and Test Project uses: ./ with: source-dir: test run-test: true test-args: -R hello_world - additional-flags-usage: + test-action-with-additional-args: + name: Test Action With Additional Arguments runs-on: ${{ matrix.compiler == 'msvc' && 'windows' || 'ubuntu' }}-latest strategy: fail-fast: false matrix: compiler: [gcc, msvc] steps: - - name: Checkout the repository + - name: Checkout uses: actions/checkout@v4.1.1 - - name: Use the action with additional compiler flags + - name: Configure, Build, and Test Project uses: ./ with: source-dir: test @@ -140,17 +145,18 @@ jobs: run-test: true test-args: -R test ${{ matrix.compiler == 'msvc' && '-C Debug' || '' }} - specified-generator-and-compiler-usage: + test-action-with-custom-tools: + name: Test Action With Custom Tools runs-on: ${{ matrix.os }}-latest strategy: fail-fast: false matrix: os: [windows, ubuntu, macos] steps: - - name: Checkout the repository + - name: Checkout uses: actions/checkout@v4.1.1 - - name: Use the action with specified generator and compilers + - name: Configure, Build, and Test Project uses: ./ with: source-dir: test diff --git a/README.md b/README.md index fe719c9..75dc268 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Latest Version](https://img.shields.io/github/v/release/threeal/cmake-action)](https://github.com/threeal/cmake-action/releases/) [![License](https://img.shields.io/github/license/threeal/cmake-action)](./LICENSE) [![Build Status](https://img.shields.io/github/actions/workflow/status/threeal/cmake-action/build.yaml?branch=main)](https://github.com/threeal/cmake-action/actions/workflows/build.yaml) -[![Test Status](https://img.shields.io/github/actions/workflow/status/threeal/cmake-action/test.yml?label=test&branch=main)](https://github.com/threeal/cmake-action/actions/workflows/test.yml) +[![Test Status](https://img.shields.io/github/actions/workflow/status/threeal/cmake-action/test.yaml?label=test&branch=main)](https://github.com/threeal/cmake-action/actions/workflows/test.yaml) Configure, build, and test your [CMake](https://cmake.org/) project using [GitHub Actions](https://github.com/features/actions). This action simplifies the workflow for configuring the build environment of a CMake project. It can also be optionally specified to build a CMake project using the `cmake --build` command and test it using the `ctest` command. @@ -55,18 +55,19 @@ on: push: jobs: build-project: + name: Build Project runs-on: ubuntu-latest steps: - - name: Checkout the repository - uses: actions/checkout@v3.5.3 + - name: Checkout + uses: actions/checkout@v4.1.1 - - name: Configure the project + - name: Configure Project uses: threeal/cmake-action@v1.3.0 - - name: Build the project + - name: Build Project runs: cmake --build build - - name: Test the project + - name: Test Project runs: ctest --test-dir build ``` @@ -75,7 +76,7 @@ jobs: #### Configure, Build, and Test in the Same Step ```yaml -- name: Configure, build, and test the project +- name: Configure, Build, and Test Project uses: threeal/cmake-action@v1.3.0 with: run-build: true @@ -85,7 +86,7 @@ jobs: #### Specify the Source and Build Directories ```yaml -- name: Configure the project +- name: Configure Project uses: threeal/cmake-action@v1.3.0 with: source-dir: submodules @@ -95,7 +96,7 @@ jobs: #### Using Ninja as the Generator and Clang as the Compiler ```yaml -- name: Configure the project +- name: Configure Project uses: threeal/cmake-action@v1.3.0 with: generator: Ninja