Skip to content

backup of CI overhaul #1

backup of CI overhaul

backup of CI overhaul #1

name: 'Configure and build PluginTemplate'
on:
workflow_call:
inputs:
project_name:
required: true
type: string
project_slug:
required: false
type: string
default: "new_project"
secrets:
CONTAINER_REPO_TOKEN:
required: true
Test-Cookiecutter:
runs-on: ubuntu-latest
container:
image: ghcr.io/nwchemex/nwx_buildenv:latest
credentials:
username: ${{ github.actor }}
password: ${{ secrets.CONTAINER_REPO_TOKEN }}
steps:
- uses: actions/checkout@v2
- name: Install cookecutter
run: |
pip install cookiecutter
shell: bash
- name: Install Zip
run: |
apt-get update && apt-get install -y zip
shell: bash
- name: Zip current state
run: |
# From the Cookiecutter docs
(SOURCE_DIR=$(basename $PWD) ZIP=cookiecutter.zip &&
pushd .. &&
zip -r $ZIP $SOURCE_DIR --exclude $SOURCE_DIR/$ZIP --quiet &&
mv $ZIP $SOURCE_DIR/$ZIP &&
popd &&
echo "Cookiecutter full path: $PWD/$ZIP")
shell: bash
- name: Write configure.yaml
run: |
echo "default_context:" > configure.yaml
echo " project_name: ${PROJECT_NAME}" >> configure.yaml
shell: bash
env:
PROJECT_NAME: ${{ inputs.project_name }}
PROJECT_SLUG: ${{ inputs.project_slug }}
- name: Test current state
run: |
# Generate the template
cookiecutter ./cookiecutter.zip --no-input --config-file configure.yaml
cd ${PROJECT_SLUG}
# Configure, build, and test
cmake -Bbuild -H. \
-DCMAKE_TOOLCHAIN_FILE=./default_toolchain.cmake \
-DCMAKE_INSTALL_PREFIX=./install
cmake --build build --parallel
cd build
ctest -VV
shell: bash
env:
PROJECT_SLUG: ${{ inputs.project_slug }}