Skip to content

React to changed GenomicsDB api and create GitHub Actions workflows for basic build/test #44

React to changed GenomicsDB api and create GitHub Actions workflows for basic build/test

React to changed GenomicsDB api and create GitHub Actions workflows for basic build/test #44

Workflow file for this run

#
# basic.yml
#
# The MIT License
#
# Copyright (c) 2023 Omics Data Automation, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
#
# See https://github.com/r-lib/actions/tree/master/examples#readme for
# additional example workflows available for the R community.
name: Build and Test
on:
push:
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- '**/*.md'
env:
GENOMICSDB_BUILD_DIR: ${{ github.workspace }}
GENOMICSDB_HOME: ${{ github.workspace }}/install
GENOMICSDB_BRANCH: develop
jobs:
native-build:
name: GenomicsDB Build
runs-on: ubuntu-22.04
steps:
- name: Cache Native GenomicsDB
uses: actions/cache@v3
env:
GENOMICSDB_TARBALL: ${{ env.GENOMICSDB_HOME }}_${{ env.GENOMICSDB_BRANCH }}.tar
with:
path: ${{ env.GENOMICSDB_TARBALL }}
key: ${{ env.GENOMICSDB_TARBALL }}.v1
- name: Native Build
env:
GENOMICSDB_TARBALL: ${{ env.GENOMICSDB_HOME }}_${{ env.GENOMICSDB_BRANCH }}.tar
run: |
echo "GENOMICSDB_TARBALL=$GENOMICSDB_TARBALL" >> $GITHUB_ENV
if [[ ! -f ${GENOMICSDB_TARBALL} ]]; then
sudo apt-get update -q && sudo apt install -y libcurl4-openssl-dev curl mpich
git clone https://github.com/GenomicsDB/GenomicsDB.git -b $GENOMICSDB_BRANCH $GENOMICSDB_BUILD_DIR
cd $GENOMICSDB_BUILD_DIR
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=$GENOMICSDB_HOME
cd build && make -j4 && make install
cd $(dirname $GENOMICSDB_HOME)
tar -cvf ${GENOMICSDB_TARBALL} $(basename $GENOMICSDB_HOME)
fi
- name: Upload GenomicsDB Tarball
uses: actions/upload-artifact@v3
with:
name: GenomicsDB-Tarball-${{ runner.os }}
path: ${{ env.GENOMICSDB_TARBALL }}
retention-days: 5
r-build:
name: R Build
needs: native-build
runs-on: ubuntu-22.04
env:
R_LIBS: ${{ github.workspace }}/R-libs
strategy:
matrix:
r-version: ['4.2']
steps:
- uses: actions/checkout@v3
- name: Download GenomicsDB Tarball
uses: actions/download-artifact@v3
with:
name: GenomicsDB-Tarball-${{runner.os}}
- name: Extract GenomicsDB from Tarball
env:
GENOMICSDB_TARBALL: ${{ env.GENOMICSDB_HOME }}_${{ env.GENOMICSDB_BRANCH }}.tar
run: tar -xvf ${GENOMICSDB_TARBALL} -C $(dirname $GENOMICSDB_HOME)
- name: Setup R ${{ matrix.r-version }}
uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.r-version }}
- name: Setup R_LIBS
run: |
mkdir -p $R_LIBS
echo "R_LIBS=$R_LIBS" > .Renviron
- name: Cache installed Packages
uses: actions/cache@v3
with:
path: ${{ env.R_LIBS }}
key: R-libs-${{ runner.os }}-${{ matrix.r-version }}-${{ hashFiles('DESCRIPTION') }}
- name: Install Dependencies
run: |
system("sudo apt-get install libcurl4-openssl-dev")
r_libs=Sys.getenv("R_LIBS")
install.packages(c("remotes", "rcmdcheck"), lib=r_libs)
remotes::install_deps(dependencies = TRUE, lib=r_libs)
shell: Rscript {0}
- name: Build and Check
run: rcmdcheck::rcmdcheck(args=c("--no-manual", "--ignore-vignettes"), build_args="--no-build-vignettes", error_on = "error")
shell: Rscript {0}