File: basic.yml

package info (click to toggle)
genomicsdb 1.4.4-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 24,788 kB
  • sloc: cpp: 78,988; ansic: 58,119; java: 8,531; python: 2,270; sh: 1,850; perl: 1,621; makefile: 490; xml: 455
file content (194 lines) | stat: -rw-r--r-- 6,385 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
name: build

on:
  push:
    paths-ignore:
      - '**/*.md'
      - '**/*.rst'
  pull_request:
    paths-ignore:
      - '**/*.md'
      - '**/*.rst'

env:
  PREREQS_ENV: ${{github.workspace}}/prereqs.sh
  SPARK_ENV: ${{github.workspace}}/spark_env.sh
  HADOOP_ENV: ${{github.workspace}}/hadoop_env.sh
  PREREQS_INSTALL_DIR: ${{github.workspace}}/prereqs
  PROTOBUF_VERSION: 3.19.4
  CMAKE_INSTALL_PREFIX: ${{github.workspace}}/install
  GENOMICSDB_BUILD_DIR: ${{github.workspace}}/build
  GENOMICSDB_RELEASE_VERSION: x.y.z.test
  HADOOP_VER: 3.2.2
  SPARK_VER: 3.0.1
  SPARK_HADOOP_VER: 2.7

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-18.04,macos-11]
        type: [basic]
        java: [8,11]
        include:
          - os: ubuntu-18.04
            type: hdfs
            java: 8
            #- os: ubuntu-18.04
            #  type: hdfs
            #  java: 11

    env: 
      OS_TYPE: ${{matrix.os}} 
      JAVA_VER: ${{matrix.java}}
      JAVA_LINUX: /usr/lib/jvm/java-1.${{matrix.java}}.0-openjdk-amd64/
      
    runs-on: ${{matrix.os}}

    steps:
    - uses: actions/checkout@v2

    - uses: actions/setup-python@v2
      with:
        python-version: 3.6

    - uses: actions/setup-java@v1
      if:  startsWith(matrix.os, 'macos')
      with: 
        java-version: ${{matrix.java}}

    - name: Install Java, set path
      if: startsWith(matrix.os, 'ubuntu')
      shell: bash
      run: | 
        sudo add-apt-repository -y ppa:openjdk-r/ppa
        sudo apt update -qq
        sudo apt install -yq openjdk-${{matrix.java}}-jdk
        echo $JAVA_LINUX/bin >> $GITHUB_PATH

    - name: Cache built prerequisites
      uses: actions/cache@v2
      with:
        path: |
          ${{env.PREREQS_INSTALL_DIR}}
          ~/.m2/repository
          ~/awssdk-install
          ~/gcssdk-install
          ~/protobuf-install/${{env.PROTOBUF_VERSION}}
        key: ${{matrix.os}}-cache-prereqs-v5

    # TODO: See https://github.com/actions/cache/pull/285 using platform-independent "pip cache dir"
    - name: Cache Python artifacts for Ubuntu 
      uses: actions/cache@v2
      if: startsWith(matrix.os, 'ubuntu')
      with:
        path: ~/.cache/pip
        key: ${{matrix.os}}-pip-${{matrix.python-version}}-v1

    - name: Cache Python artifacts for MacOS
      uses: actions/cache@v2
      if: startsWith(matrix.os, 'macos')
      with:
        path: ~/Library/Caches/pip
        key: ${{matrix.os}}-pip-${{matrix.python-version}}-v1

    - name: Cache Distributed FileSystems
      if: matrix.type == 'hdfs'
      uses: actions/cache@v2
      with:
        path: ${{runner.workspace}}/hadoop-${{env.HADOOP_VER}}
        key: dfs-${{env.HADOOP_VER}}-v2

    - name: Install Prerequisites
      shell: bash
      working-directory: ${{github.workspace}}/scripts/prereqs
      run: |
        $GITHUB_WORKSPACE/.github/scripts/cleanup_hosts.sh
        echo "matrix.os = ${{matrix.os}}"
        if [[ ${{matrix.os}} == macos* ]]; then
          echo "Installing Prerequistes for MacOS..."
          INSTALL_PREFIX=$PREREQS_INSTALL_DIR PREREQS_ENV=$PREREQS_ENV ./install_prereqs.sh
        else
          echo "Install Prerequisites for Linux.."
          sudo INSTALL_PREFIX=$PREREQS_INSTALL_DIR PREREQS_ENV=$PREREQS_ENV ./install_prereqs.sh
        fi
        echo "cat prereqs env..."
        cat $PREREQS_ENV
        echo "cat prereqs env DONE"

    - name: Install spark and hadoop dependencies
      if: matrix.type == 'hdfs'
      shell: bash
      working-directory:  ${{github.workspace}}
      run: |
        source $GITHUB_WORKSPACE/.github/scripts/install_hadoop.sh
        JAVA_HOME=$JAVA_LINUX SPARK_ENV=$SPARK_ENV source $GITHUB_WORKSPACE/.github/scripts/install_spark.sh
      env:
        INSTALL_DIR: ${{runner.workspace}}

    - name: Create Build Directory
      shell: bash
      run: mkdir -p $GENOMICSDB_BUILD_DIR

    - name: Configure CMake Build
      shell: bash
      working-directory: ${{env.GENOMICSDB_BUILD_DIR}}
      run: |
        if [[ $JAVA_VER == '11' ]]; then
          GENOMICSDB_MAVEN_PROFILE=java11
        fi
        source $PREREQS_ENV
        if [[ $OS_TYPE == 'ubuntu-18.04' ]]; then
          JAVA_HOME=$JAVA_LINUX
          echo $JAVA_LINUX/bin >> $GITHUB_PATH
        fi
        # java tests take a very long time to run on MacOS, so limit running the tests to PRs and master/develop branches
        BRANCH=${GITHUB_REF##*/}
        if [[ ${{matrix.os}} != macos* || ${GITHUB_REF##*/} == master || ${GITHUB_REF##*/} == develop || $GITHUB_BASE_REF == master || $GITHUB_BASE_REF == develop ]]; then
          echo "cmake BUILD_JAVA set to 1"
          JAVA_BUILD_ARGS="-DBUILD_JAVA=1 -DGENOMICSDB_MAVEN_PROFILE=$GENOMICSDB_MAVEN_PROFILE"
        fi
        cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=Coverage -DCMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX \
        -DCMAKE_PREFIX_PATH=$PREREQS_INSTALL_DIR -DGENOMICSDB_PROTOBUF_VERSION=$PROTOBUF_VERSION         \
        -DGENOMICSDB_RELEASE_VERSION=$GENOMICSDB_RELEASE_VERSION $JAVA_BUILD_ARGS

    - name: Build
      working-directory: ${{env.GENOMICSDB_BUILD_DIR}}
      shell: bash
      run: |
        if [[ $OS_TYPE == 'ubuntu-18.04' ]]; then
          export JAVA_HOME=$JAVA_LINUX
          echo $JAVA_LINUX/bin >> $GITHUB_PATH
        fi
        source $PREREQS_ENV
        make -j4
        make install

    - name: Test
      shell: bash
      working-directory: ${{env.GENOMICSDB_BUILD_DIR}}
      if: matrix.type == 'basic'
      run: |
        if [[ $OS_TYPE == 'ubuntu-18.04' ]]; then
          export JAVA_HOME=$JAVA_LINUX
          echo $JAVA_LINUX/bin >> $GITHUB_PATH
        fi
        python -m pip install --upgrade pip
        python -m pip install jsondiff
        make test ARGS=-V

    - name: Test - Distributed FileSystems
      if: matrix.type == 'hdfs'
      shell: bash
      working-directory:  ${{github.workspace}}
      run: |
        JAVA_HOME=$JAVA_LINUX
        source $SPARK_ENV
        python -m pip install --upgrade pip
        python -m pip install jsondiff
        python tests/run_spark_hdfs.py $GENOMICSDB_BUILD_DIR $CMAKE_INSTALL_PREFIX local hdfs://localhost:9000/ client $GENOMICSDB_RELEASE_VERSION $GITHUB_WORKSPACE/tests Coverage
        $GITHUB_WORKSPACE/.github/scripts/test_hdfs_htslib_support.sh

    - name: Upload Coverage to CodeCov
      uses: codecov/codecov-action@v1