Skip to content

Change master to main in docs and workflows #137

Change master to main in docs and workflows

Change master to main in docs and workflows #137

name: Build and Test
on:
push:
branches:
- "main"
- "staging"
pull_request:
branches:
- "*"
env:
PROGRAM_NAME: pasv
jobs:
build:
strategy:
fail-fast: false
matrix:
os:
- macos-11
- ubuntu-20.04
ocaml-compiler:
- 4.14.1
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: recursive
- run: echo "LOCAL_PATH=$HOME/.local/bin" >> $GITHUB_ENV
- run: echo "CLUSTALO_EXE=$LOCAL_PATH/clustalo" >> $GITHUB_ENV
- name: Setup path
run: |
mkdir -p "$LOCAL_PATH"
echo "$LOCAL_PATH" >> $GITHUB_PATH
- name: Download Clustal Omega (Linux)
run: |
\curl -L http://www.clustal.org/omega/clustalo-1.2.4-Ubuntu-x86_64 > "$CLUSTALO_EXE"
if: matrix.os == 'ubuntu-20.04'
- name: Download Clustal Omega (MacOS)
# 1.2.4 isn't available for MacOS
run: |
\curl -L http://www.clustal.org/omega/clustal-omega-1.2.3-macosx > "$CLUSTALO_EXE"
if: matrix.os == 'macos-11'
- name: Setup and check Clustal Omega
run: |
chmod 755 "$CLUSTALO_EXE"
clustalo --version
- name: Download MAFFT
run: |
\curl -L https://mafft.cbrc.jp/alignment/software/mafft-7.481-without-extensions-src.tgz \
| tar xz
- name: Install MAFFT
run: cd mafft-*/core/ && make clean && make && sudo make install
- name: Download HMMER
run: \curl -L http://eddylab.org/software/hmmer/hmmer-3.3.2.tar.gz | tar xz
- name: Install HMMER
run: cd hmmer-3.3.2 && ./configure && make && sudo make install
- name: Use OCaml ${{ matrix.ocaml-compiler }}
uses: ocaml/setup-ocaml@v2
with:
ocaml-compiler: ${{ matrix.ocaml-compiler }}
dune-cache: ${{ matrix.os != 'macos-11' }}
cache-prefix: v1-${{ matrix.os }}
- name: Install OCaml deps (Ubuntu)
run: opam update && opam install --locked . --deps-only --with-doc --with-test
if: matrix.os == 'ubuntu-20.04'
- name: Install OCaml deps (MacOS)
run: opam update && opam install --locked . --jobs 1 --deps-only --with-doc --with-test
if: matrix.os == 'macos-11'
- name: Test (Ubuntu)
run: opam exec -- make test
if: matrix.os == 'ubuntu-20.04'
- name: Test (MacOS)
run: opam exec -- make test_mac
if: matrix.os == 'macos-11'
- run: opam exec -- make send_coverage
if: matrix.ocaml-compiler == '4.12.0'
env:
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build (Ubuntu)
run: opam exec -- make build_release
if: matrix.os == 'ubuntu-20.04'
- name: Build (MacOS)
run: opam exec -- make build_release_mac
if: matrix.os == 'macos-11'
- name: Upload the build artifact
uses: actions/upload-artifact@v2
with:
name: ${{ matrix.os }}-${{ matrix.ocaml-compiler }}-${{ env.PROGRAM_NAME }}
path: _build/install/default/bin/${{ env.PROGRAM_NAME }}