From 94f134c8ff188c9d5f06af1035595c6ceac0f279 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Gr=C3=A9goire?= Date: Sun, 22 Nov 2020 15:09:18 +0100 Subject: [PATCH 1/6] Enhance CMake starter workflow This enhances and cleans the previous workflow by: - Using the universal cmake commands - Using `${{env.BUILD_TYPE}}` instead of enforcing bash shell - Adding the install and artifact steps --- ci/cmake.yml | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/ci/cmake.yml b/ci/cmake.yml index d521769..79686c4 100644 --- a/ci/cmake.yml +++ b/ci/cmake.yml @@ -17,30 +17,31 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Create Build Environment - # Some projects don't allow in-source building, so create a separate build directory - # We'll use this as our working directory for all subsequent commands - run: cmake -E make_directory ${{runner.workspace}}/build - - name: Configure CMake - # Use a bash shell so we can use the same syntax for environment variable - # access regardless of the host operating system - shell: bash - working-directory: ${{runner.workspace}}/build - # Note the current convention is to use the -S and -B options here to specify source - # and build directories, but this is only available with CMake 3.13 and higher. - # The CMake binaries on the Github Actions machines are (as of this writing) 3.12 - run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} - name: Build - working-directory: ${{runner.workspace}}/build - shell: bash - # Execute the build. You can specify a specific target with "--target " - run: cmake --build . --config $BUILD_TYPE + # Build your program with the given configuration + run: cmake --build build --config ${{env.BUILD_TYPE}} - name: Test working-directory: ${{runner.workspace}}/build - shell: bash # Execute tests defined by the CMake configuration. # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail - run: ctest -C $BUILD_TYPE + run: ctest -C ${{env.BUILD_TYPE}} + + - name: Install + # This step will install your cmake package to the `install` subdirectory. + # See https://cmake.org/cmake/help/latest/command/install.html + # You probably would want to also take a look at CPack https://cmake.org/cmake/help/latest/module/CPack.html + run: cmake --install build --prefix install + + - name: Upload artifact + # Upload the installed folder. On linux, you'll want to generate a .tar archive to keep permissions for executables. + # See https://github.com/actions/upload-artifact#maintaining-file-permissions-and-case-sensitive-files + uses: actions/upload-artifact@v2.2.1 + with: + path: install/* + From ee5512ec2113689cad97602add13382186ef06d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Gr=C3=A9goire?= Date: Sun, 22 Nov 2020 15:37:53 +0100 Subject: [PATCH 2/6] Following the latest guidelines for triggers --- ci/cmake.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ci/cmake.yml b/ci/cmake.yml index 79686c4..eb57306 100644 --- a/ci/cmake.yml +++ b/ci/cmake.yml @@ -1,6 +1,10 @@ name: CMake -on: [push] +on: + push: + branches: [ $default-branch ] + pull_request: + branches: [ $default-branch ] env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) From 1bf4cbdad89451838894259223220d4b57747cf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Gr=C3=A9goire?= Date: Tue, 24 Nov 2020 22:56:29 +0100 Subject: [PATCH 3/6] CMake: Remove the install and artifact steps for --- ci/cmake.yml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/ci/cmake.yml b/ci/cmake.yml index eb57306..0a8b093 100644 --- a/ci/cmake.yml +++ b/ci/cmake.yml @@ -36,16 +36,3 @@ jobs: # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail run: ctest -C ${{env.BUILD_TYPE}} - - name: Install - # This step will install your cmake package to the `install` subdirectory. - # See https://cmake.org/cmake/help/latest/command/install.html - # You probably would want to also take a look at CPack https://cmake.org/cmake/help/latest/module/CPack.html - run: cmake --install build --prefix install - - - name: Upload artifact - # Upload the installed folder. On linux, you'll want to generate a .tar archive to keep permissions for executables. - # See https://github.com/actions/upload-artifact#maintaining-file-permissions-and-case-sensitive-files - uses: actions/upload-artifact@v2.2.1 - with: - path: install/* - From f344c836c9111887b2f5460a631d7a234e0482c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Gr=C3=A9goire?= Date: Sat, 5 Dec 2020 16:06:07 +0100 Subject: [PATCH 4/6] CMake: Use ${{runner.workspace}}/build instead of ./build --- ci/cmake.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/cmake.yml b/ci/cmake.yml index 0a8b093..569aa86 100644 --- a/ci/cmake.yml +++ b/ci/cmake.yml @@ -24,11 +24,11 @@ jobs: - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: cmake -B build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + run: cmake -B ${{runner.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} - name: Build # Build your program with the given configuration - run: cmake --build build --config ${{env.BUILD_TYPE}} + run: cmake --build ${{runner.workspace}}/build --config ${{env.BUILD_TYPE}} - name: Test working-directory: ${{runner.workspace}}/build From b6f43960efe5966477724f236f28cb1fecc74b52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Gr=C3=A9goire?= Date: Thu, 7 Jan 2021 08:01:43 +0100 Subject: [PATCH 5/6] Fix context references runner.workspace => github.workspace Co-authored-by: Josh Gross --- ci/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/cmake.yml b/ci/cmake.yml index 569aa86..58614a5 100644 --- a/ci/cmake.yml +++ b/ci/cmake.yml @@ -24,7 +24,7 @@ jobs: - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: cmake -B ${{runner.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} - name: Build # Build your program with the given configuration From 4978051373fa50aa592c1b3c455cbd0f3eb1cde7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Gr=C3=A9goire?= Date: Thu, 7 Jan 2021 08:01:58 +0100 Subject: [PATCH 6/6] runner.workspace => github.workspace Co-authored-by: Josh Gross --- ci/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/cmake.yml b/ci/cmake.yml index 58614a5..d251d2e 100644 --- a/ci/cmake.yml +++ b/ci/cmake.yml @@ -28,7 +28,7 @@ jobs: - name: Build # Build your program with the given configuration - run: cmake --build ${{runner.workspace}}/build --config ${{env.BUILD_TYPE}} + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - name: Test working-directory: ${{runner.workspace}}/build