Merge pull request #1003 from COMBINE-lab/codex/develop-refactor #20
This file contains hidden or 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
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - "**" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| precheck: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| run_ci: ${{ steps.decide.outputs.run_ci }} | |
| steps: | |
| - id: decide | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| msg="$(jq -r '.head_commit.message // ""' "$GITHUB_EVENT_PATH")" | |
| ref="${GITHUB_REF#refs/heads/}" | |
| run_ci=false | |
| if [[ "${GITHUB_EVENT_NAME}" == "workflow_dispatch" ]]; then | |
| run_ci=true | |
| fi | |
| if [[ "$ref" == "main" ]]; then | |
| run_ci=true | |
| fi | |
| if [[ "$msg" == *"[run-ci]"* ]]; then | |
| run_ci=true | |
| fi | |
| { | |
| echo "run_ci=$run_ci" | |
| } >> "$GITHUB_OUTPUT" | |
| build-test: | |
| needs: precheck | |
| if: ${{ needs.precheck.outputs.run_ci == 'true' }} | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 120 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: ubuntu-22.04 | |
| target_id: linux-x86_64 | |
| build_parallel: 2 | |
| - os: ubuntu-24.04-arm | |
| target_id: linux-aarch64 | |
| build_parallel: 2 | |
| - os: macos-15-intel | |
| target_id: macos-x86_64 | |
| build_parallel: 3 | |
| - os: macos-14 | |
| target_id: macos-arm64 | |
| build_parallel: 3 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Linux Build Dependencies | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| build-essential \ | |
| cmake \ | |
| git \ | |
| curl \ | |
| libcurl4-openssl-dev \ | |
| libbz2-dev \ | |
| liblzma-dev | |
| - name: Configure | |
| run: | | |
| cmake -S . -B build-ci \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DSALMON_ENABLE_TESTS=ON \ | |
| -DSALMON_USE_SYSTEM_DEPS=OFF \ | |
| -DSALMON_FETCH_MISSING_DEPS=ON \ | |
| -DSALMON_BOOST_USE_STATIC_LIBS=ON | |
| - name: Build | |
| run: cmake --build build-ci --target salmon unitTests --parallel ${{ matrix.build_parallel }} | |
| - name: Run Unit Tests | |
| run: ./build-ci/src/unitTests | |
| - name: CLI Smoke | |
| run: ./build-ci/src/salmon -h | |
| - name: Prepare Sample Data | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| if [[ ! -d sample_data ]]; then | |
| tar -xzf sample_data.tgz | |
| fi | |
| - name: Sample Data Smoke (Mapping) | |
| run: | | |
| ./build-ci/src/salmon index \ | |
| -t sample_data/transcripts.fasta \ | |
| -i build-ci/sample_index | |
| ./build-ci/src/salmon quant \ | |
| -l A \ | |
| -i build-ci/sample_index \ | |
| -1 sample_data/reads_1.fastq \ | |
| -2 sample_data/reads_2.fastq \ | |
| -o build-ci/sample_quant_mapping | |
| - name: Sample Data Smoke (Alignment) | |
| run: | | |
| ./build-ci/src/salmon quant \ | |
| -l A \ | |
| -t sample_data/transcripts.fasta \ | |
| -a sample_data/sample_alignments.bam \ | |
| -o build-ci/sample_quant_alignment | |
| - name: Package Binary Artifact | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| pkg_dir="release/salmon-${{ matrix.target_id }}" | |
| mkdir -p "$pkg_dir/bin" | |
| cp build-ci/src/salmon "$pkg_dir/bin/" | |
| cp LICENSE "$pkg_dir/" | |
| cp README.md "$pkg_dir/" | |
| tar -C release -czf "salmon-${{ matrix.target_id }}.tar.gz" "salmon-${{ matrix.target_id }}" | |
| - name: Upload Binary Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: salmon-${{ matrix.target_id }} | |
| path: salmon-${{ matrix.target_id }}.tar.gz | |
| if-no-files-found: error |