Skip to content

Commit

Permalink
adding some more options
Browse files Browse the repository at this point in the history
  • Loading branch information
Iximiel committed Aug 29, 2024
1 parent 393d28a commit 2719e18
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 41 deletions.
5 changes: 4 additions & 1 deletion .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,12 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: Iximiel/install-plumed@main
- name : install plumed
uses: Iximiel/install-plumed@main
id: plumed
- name: run plumed
run: |
echo ${{ steps.plumed.outputs.path }}
plumed --version
test_Stable:
Expand Down
52 changes: 39 additions & 13 deletions action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,52 @@ inputs:
description: 'Suffix for the program name'
required: false
default: ''
# outputs:
# random-number:
# description: "Random number"
# value: ${{ steps.random-number-generator.outputs.random-number }}
prefix:
description: 'The installation prefix'
required: false
default: '~/opt/'
extra_options:
description: 'Extra options for installing plumed'
required: false
default: '--enable-boost_serialization --enable-fftw --enable-libtorch'
modules:
description: 'List of modules to install, or "all"'
required: false
default: 'all'
CC:
description: 'C compiler'
required: false
default: 'gcc'
CXX:
description: 'C++ compiler'
required: false
default: 'g++'
outputs:
path:
description: "Plumed executable path"
value: ${{ steps.installation.outputs.plumed_path }}
runs:
using: "composite"
steps:
- name: Set up environment
shell: bash
run: |
sudo apt update
sudo apt install mpi-default-bin mpi-default-dev
sudo apt install libfftw3-dev gsl-bin libgsl0-dev libboost-serialization-dev
sudo apt install ccache
sudo apt-get update
# - name: Set up environment
# shell: bash
# run: |
# sudo apt update
# sudo apt install mpi-default-bin mpi-default-dev
# sudo apt install libfftw3-dev gsl-bin libgsl0-dev libboost-serialization-dev
# sudo apt install ccache
# sudo apt-get update
- name: Install plumed
id: installation
run: $GITHUB_ACTION_PATH/install-plumed.sh
shell: bash
env:
REPO: ${{ inputs.repository }}
VERSION: ${{ inputs.version }}
PROGRAM_NAME: ${{ inputs.program_name }}
SUFFIX: ${{ inputs.suffix }}
SUFFIX: ${{ inputs.suffix }}
PREFIX: ${{ inputs.prefix }}
EXTRA_OPTIONS: ${{ inputs.extra_options }}
MODULES: ${{ inputs.modules }}
CC: ${{ inputs.CC }}
CXX: ${{ inputs.CXX }}
51 changes: 24 additions & 27 deletions install-plumed.sh
Original file line number Diff line number Diff line change
@@ -1,31 +1,13 @@
#!/bin/bash
#! /bin/bash

set -e
set -x

cat <<EOF
SUFFIX="$SUFFIX"
VERSION="$VERSION"
REPO="$REPO"
VERSION="$VERSION"
PROGRAM_NAME="$PROGRAM_NAME"
SUFFIX="$SUFFIX"
PREFIX="$PREFIX"
EOF

# for opt; do
# case "$opt" in
# version=*) version="${opt#version=}" ;;
# suffix=*)
# suffix="--program-suffix=${opt#suffix=}"
# program_name="plumed${opt#suffix=}"
# ;;
# REPO=*) REPO="${opt#REPO=}" ;;
# *)
# echo "unknown option $opt"
# exit 1
# ;;
# esac
# done

cd "$(mktemp -dt plumed.XXXXXX)" || {
echo "Failed to create tempdir"
exit 1
Expand All @@ -43,6 +25,18 @@ else
echo "installing latest stable plumed $VERSION"
fi

plumed_options="$EXTRA_OPTIONS"
if [[ -n "$SUFFIX" ]]; then
plumed_options="$plumed_options --program-suffix=\"$SUFFIX\""
fi

if [[ -n "$PREFIX" ]]; then
plumed_options="$plumed_options --prefix=\"$PREFIX\""
fi
if [[ -n "$MODULES" ]]; then
plumed_options="$plumed_options --enable-modules=$MODULES"
fi

#cheking out to $VERSION before compiling the dependency json for this $VERSION
git checkout $VERSION

Expand Down Expand Up @@ -84,22 +78,25 @@ hash=$(git rev-parse HEAD)
if [[ -f $HOME/opt/lib/$PROGRAM_NAME/$hash ]]; then
echo "ALREADY AVAILABLE, NO NEED TO REINSTALL"
else
#remove the conflicting old installation
rm -fr "$PREFIX/lib/$PROGRAM_NAME"
rm -fr "$PREFIX/opt/bin/$PROGRAM_NAME"
rm -fr "$PREFIX/opt/include/$PROGRAM_NAME"
rm -fr "$PREFIX"/opt/lib/lib$PROGRAM_NAME.so*

rm -fr "$HOME/opt/lib/$PROGRAM_NAME"
rm -fr "$HOME/opt/bin/$PROGRAM_NAME"
rm -fr "$HOME/opt/include/$PROGRAM_NAME"
rm -fr "$HOME"/opt/lib/lib$PROGRAM_NAME.so*
cat <<EOF
./configure --prefix="$HOME/opt" \
--enable-modules=all \
--enable-boost_serialization \
--enable-fftw $SUFFIX \
--enable-fftw --program-suffix=$SUFFIX \
--enable-libtorch LDFLAGS=-Wl,-rpath,$LD_LIBRARY_PATH
./configure $plumed_options LDFLAGS=-Wl,-rpath,$LD_LIBRARY_PATH
make -j 5
make install
touch "$HOME/opt/lib/$PROGRAM_NAME/$hash"
EOF
fi

echo "plumed_path=${PREFIX}/bin" >>$GITHUB_OUTPUT

0 comments on commit 2719e18

Please sign in to comment.