Skip to content

updated action versions on both Actions workflows; refactored pyinsta… #581

updated action versions on both Actions workflows; refactored pyinsta…

updated action versions on both Actions workflows; refactored pyinsta… #581

Workflow file for this run

name: Build CI
on:
push:
pull_request:
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
python-version: ['3.10', '3.11', '3.12' ]
exclude:
- os: macos-latest
python-version: '3.10'
env:
DISPLAY: ':99.0'
steps:
- name: Configure pagefile
if: runner.os == 'Windows'
uses: al-cheb/configure-pagefile-action@v1
- name: Set up pagefile
if: runner.os == 'Windows'
run: |
(Get-CimInstance Win32_PageFileUsage).AllocatedBaseSize
- name: Get repository
uses: actions/checkout@v4
- name: apt-get update (Linux)
if: runner.os == 'Linux'
run: sudo apt-get update
- name: Setup Qt requirements for Linux
uses: tlambert03/setup-qt-libs@v1
- name: Setup Graphviz
uses: ts-graphviz/setup-graphviz@v2
with:
# Skip to run brew update command on macOS.
macos-skip-brew-update: 'true' # defalt false
- name: Cache LLVM and Clang
if: runner.os != 'macOS'
id: cache-llvm
uses: actions/cache@v2
with:
path: ${{ runner.temp }}/llvm
key: llvm
- name: Install LLVM and Clang
if: runner.os != 'macOS'
uses: KyleMayes/install-llvm-action@v2
with:
directory: ${{ runner.temp }}/llvm
cached: ${{ steps.cache-llvm.outputs.cache-hit }}
- name: Install R
uses: r-lib/actions/setup-r@v2
with:
r-version: '4.4' # The R version to download (if necessary) and use.
- name: Install homebrew on Linux
if: runner.os == 'Linux'
uses: Homebrew/actions/setup-homebrew@master
- name: Install cURL on Linux
if: runner.os == 'Linux'
run: sudo apt-get install libcurl4-openssl-dev
- name: Install cURL on Windows
if: runner.os == 'Windows'
run: choco install openssl
- name: Install libxml on MacOS
if: runner.os == 'macOS'
run: brew install libxml2
- name: command line tools on MacOS
if: runner.os == 'macOS'
run: |
gcc -v -xc++ /dev/null -fsyntax-only
- name: Test R installation
run: Rscript -e "print('R script ran successfully')"
- name: Install kallisto
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
wget https://github.com/pachterlab/kallisto/releases/download/v0.50.1/kallisto_linux-v0.50.1.tar.gz
tar -xvzf kallisto*.gz
echo "${GITHUB_WORKSPACE}/kallisto" >> $GITHUB_PATH
elif [ "$RUNNER_OS" == "macOS" ]; then
brew install hdf5
wget https://github.com/pachterlab/kallisto/releases/download/v0.50.1/kallisto_mac_m1-v0.50.1.tar.gz
tar -xvzf kallisto*.gz
echo "${GITHUB_WORKSPACE}/kallisto" >> $GITHUB_PATH
elif [ "$RUNNER_OS" == "Windows" ]; then
choco install wget -y
wget https://github.com/pachterlab/kallisto/releases/download/v0.50.1/kallisto_windows-v0.50.1.zip
7z x kallisto*.zip
echo "${GITHUB_WORKSPACE}/kallisto" >> $GITHUB_PATH
else
echo "$RUNNER_OS not supported"
exit 1
fi
shell: bash
continue-on-error: true
- name: Test kallisto installation
run: kallisto version
- name: Install bowtie2
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
brew install bowtie2
elif [ "$RUNNER_OS" == "macOS" ]; then
brew install bowtie2
elif [ "$RUNNER_OS" == "Windows" ]; then
choco install wget -y
wget https://github.com/BenLangmead/bowtie2/releases/download/v2.5.1/bowtie2-2.5.1-mingw-x86_64.zip
7z x bowtie2-2.5.1-mingw-x86_64.zip
echo "${GITHUB_WORKSPACE}/bowtie2-2.5.1-mingw-x86_64" >> $GITHUB_PATH
else
echo "$RUNNER_OS not supported"
exit 1
fi
shell: bash
- name: Test bowtie2 installation
run: |
bowtie2 --version
bowtie2-build-s --version
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade -r requirements_dev.txt
python -m pip install .[all]
- name: Test with pytest
run: |
coverage run --source=rnalysis/ -m pytest tests/
continue-on-error: false
- name: Generate lcov file
run: coverage lcov
- name: Coveralls Parallel
uses: coverallsapp/github-action@v2
if: runner.os != 'macOS'
continue-on-error: true
with:
flag-name: run-${{ join(matrix.*, '-') }}
parallel: true
path-to-lcov: ./coverage.lcov
finish:
name: Finish submitting coverage
if: ${{ always() }}
needs: build
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
uses: coverallsapp/github-action@v2
continue-on-error: true
with:
parallel-finished: true