aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@users.noreply.github.com>2020-09-03 12:31:21 -0400
committerGitHub <noreply@github.com>2020-09-03 12:31:21 -0400
commit51389980a162050a0e557792c08893eb607c62dc (patch)
tree87714cad050276cc758a2a89ec8f2bafd984986d
parentea1c91fa18cb00205389a0167606ff712bbb6d1b (diff)
downloadmultihome-51389980a162050a0e557792c08893eb607c62dc.tar.gz
Create cmake.yml (#2)
* Create cmake.yml
-rw-r--r--.github/workflows/cmake.yml91
1 files changed, 91 insertions, 0 deletions
diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml
new file mode 100644
index 0000000..a7c50dc
--- /dev/null
+++ b/.github/workflows/cmake.yml
@@ -0,0 +1,91 @@
+name: CMake
+
+on: [push]
+
+env:
+ # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
+ BUILD_TYPE: Release
+
+jobs:
+ build:
+ # The CMake configure and build commands are platform agnostic and should work equally
+ # well on Windows or Mac. You can convert this to a matrix build if you need
+ # cross-platform coverage.
+ # See: https://docs.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow#configuring-a-build-matrix
+ runs-on: ubuntu-latest
+
+ 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 -DCMAKE_C_FLAGS="-DENABLE_TESTING"
+
+ - name: Build
+ working-directory: ${{runner.workspace}}/build
+ shell: bash
+ # Execute the build. You can specify a specific target with "--target <NAME>"
+ run: cmake --build . --config $BUILD_TYPE
+
+ - name: Initialize home
+ working-directory: ${{runner.workspace}}/build
+ shell: bash
+ run: ./multihome -s
+
+ - name: Unit Test
+ working-directory: ${{runner.workspace}}/build
+ shell: bash
+ # Execute the build. You can specify a specific target with "--target <NAME>"
+ run: ./multihome -t
+
+ - name: Runtime 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: |
+ . ~/.multihome/init
+ . /etc/profile
+ . ~/.bash_profile
+
+ echo "multihome location: $MULTIHOME"
+ echo "Current HOME: $HOME"
+ echo "Previous HOME: $HOME_OLD"
+ echo "Current PATH: $PATH"
+
+ echo "System account structure (/etc/skel):"
+ ls -la /etc/skel
+
+ echo "Previous HOME structure:"
+ ls -la $HOME_OLD
+
+ echo "Current HOME structure:"
+ ls -la $HOME
+
+ set -x
+ mkdir -p topdir/bin
+ touch topdir/.multihome/skel/TESTFILE
+ touch topdir/.gitconfig
+ touch topdir/.gemrc
+
+ echo "T bin/" > topdir/.multihome/transfer
+ echo "H .gitconfig" >> topdir/.multihome/transfer
+ echo "L .gemrc" >> topdir/.multihome/transfer
+
+ $MULTIHOME -u
+ test -L topdir
+ test -d bin
+ test -f TESTFILE
+ test -f .gitconfig
+ test -L .gemrc