Update ADMIXTOOLS compilation #54
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Workflow derived from https://github.com/r-lib/actions/tree/master/examples | |
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help | |
on: | |
push: | |
branches: [main, master] | |
pull_request: | |
branches: [main, master] | |
name: test-coverage | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
test-coverage: | |
runs-on: ubuntu-latest | |
env: | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install ADMIXTOOLS/admixr dependencies | |
run: sudo apt-get install libopenblas-dev libgsl-dev liblapack-dev bedtools | |
- name: Compile and install ADMIXTOOLS | |
run: | | |
# create a single directory for all external software | |
mkdir -p ~/deps | |
cd ~/deps | |
# download and unpack the ADMIXTOOLS source code | |
curl -LO https://github.com/DReichLab/AdmixTools/archive/v7.0.2.tar.gz | |
tar xf v7.0.2.tar.gz | |
cd AdmixTools-7.0.2 | |
# set compiler flags (compilation on macOS was failing unable to find | |
# openblas library files) | |
export LDFLAGS="-L/usr/local/opt/openblas/lib" | |
export CPPFLAGS="-I/usr/local/opt/openblas/include" | |
# compile ADMIXTOOLS and move binaries under bin/ | |
cd src | |
make clobber | |
make LDLIBS="-llapack" all | |
make install | |
# for some reason, mergeit isn't built in 6.x and 5.x? | |
# compile it and copy it | |
make mergeit | |
cp mergeit ../bin | |
# download testing data for unit tests | |
cd ../ | |
curl -LO https://reich.hms.harvard.edu/sites/reich.hms.harvard.edu/files/inline-files/AdmixTools_Example_Data.tar_.gz | |
tar xf AdmixTools_Example_Data.tar_.gz | |
# run the Perl script with tests for the compiled binaries | |
cd examples | |
# fix unportable Perl shebang | |
if [[ "$OSTYPE" == "darwin"* ]]; then | |
sed -i '' "1s/.*/\#\!\/usr\/bin\/env perl -w/" mklog | |
else | |
sed -i "1s/.*/\#\!\/usr\/bin\/env perl/" mklog | |
fi | |
./mklog | |
cd ../ | |
# we need to do this in bash because of $OSTYPE above | |
shell: bash | |
- name: Populate PATH with compiled binaries | |
run: | | |
export PATH="$HOME/deps/AdmixTools-7.0.2/bin:$PATH" | |
echo "PATH=$PATH" > ~/.Renviron | |
- uses: r-lib/actions/setup-r@v2 | |
with: | |
use-public-rspm: true | |
- uses: r-lib/actions/setup-r-dependencies@v2 | |
with: | |
extra-packages: covr | |
- name: Test coverage | |
run: covr::codecov(type = c("tests", "vignettes")) | |
shell: Rscript {0} |