diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000000..224e718da5 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,62 @@ +# This is a github actions workflow which runs picard tests + +name: Build and Test +on: + push: + branches: [master] + pull_request: + workflow_dispatch: + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + java: [ 8, 11 ] + experimental: [false] + run_barclay_tests: [true, false] +# include: +# - java: 17 +# experimental: true + fail-fast: false + continue-on-error: ${{ matrix.experimental }} + name: Java ${{ matrix.Java }}, Barclay=${{ matrix.run_barclay_tests}} tests + steps: + - uses: actions/checkout@v3 + - name: Set up java ${{ matrix.Java }} + uses: actions/setup-java@v3 + with: + java-version: ${{ matrix.Java }} + distribution: 'adopt' + cache: gradle + - name: "set up R" + run: | + wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add - + sudo apt-get -qq update + sudo apt-get install -y --no-install-recommends r-base-dev r-recommended qpdf + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Compile with Gradle + run: ./gradlew compileJava + - name: Run tests + run: | + if [[ ${{matrix.run_barclay_tests}} == true ]]; then + echo "Running tests using the Barclay command line parser." + ./gradlew barclayTest + else + echo "Running tests using the legacy Picard command line parser." + ./gradlew jacocoTestReport + fi + - name: "Build the jar and run a commandline test for sanity checking" + run: | + ./gradlew currentJar + java -jar build/libs/picard.jar MarkDuplicates -I testdata/picard/sam/aligned_queryname_sorted.bam -O out.bam --METRICS_FILE out.metrics + - name: Upload test results + if: always() + uses: actions/upload-artifact@v3 + with: + name: test-results-${{ matrix.Java }}-barclay-${{ matrix.run_barclay_tests}} + path: build/reports/tests + + + diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 27bd152563..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,45 +0,0 @@ -dist: xenial -language: java -before_cache: - - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock -cache: - directories: - - $HOME/.gradle/caches/ - - $HOME/.gradle/wrapper/ - - $HOME/.m2 -env: - matrix: - - RUN_BARCLAY_TESTS=true - - RUN_BARCLAY_TESTS=false -jdk: - # oraclejdk8 - Xenial does not support oraclejdk8 - - openjdk8 - - openjdk11 -before_install: - #skip push builds if there's an associated PR because we don't look at them anway - - if [[ ${TRAVIS_EVENT_TYPE} == push ]]; then - PULL_REQUESTS=$( scripts/travis/check_for_pull_request ); - if [[ $( grep -c "commits" <<< ${PULL_REQUESTS} ) -gt 0 ]]; then - echo "WARNING TEST SKIPPED. TESTS DO NOT RUN ON BRANCHES WITH OPEN PULL REQUESTS. SEE PULL REQUEST FOR TEST RESULTS"; - travis_terminate 0; - fi; - fi; - - wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add - - - sudo apt-get -qq update - - sudo apt-get install -y --no-install-recommends r-base-dev r-recommended qpdf -script: - - if [[ $RUN_BARCLAY_TESTS == true ]]; then - echo "Running tests using the Barclay command line parser."; - ./gradlew barclayTest; - else - echo "Running tests using the legacy Picard command line parser."; - ./gradlew jacocoTestReport; - fi - # build the jar and execute a non-trivial tool in order to verify Java command line execution compatibility - - ./gradlew currentJar - - java -jar build/libs/picard.jar MarkDuplicates -I testdata/picard/sam/aligned_queryname_sorted.bam -O out.bam --METRICS_FILE out.metrics -after_success: - - ./gradlew coveralls - - if [ "$TRAVIS_BRANCH" == "master" ]; then - ./gradlew uploadArchives; - fi diff --git a/README.md b/README.md index c9f7d11aed..82cd73155b 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,7 @@ For user questions please look for answers and ask first in the [GATK forum](htt ---- -[![Coverage Status](https://coveralls.io/repos/github/broadinstitute/picard/badge.svg?branch=master)](https://coveralls.io/github/broadinstitute/picard?branch=master) -[![Build Status](https://travis-ci.com/broadinstitute/picard.svg?branch=master)](https://travis-ci.com/broadinstitute/picard) +[![Build Status](https://github.com/broadinstitute/picard/actions/workflows/tests.yml/badge.svg?branch=master)](https://github.com/broadinstitute/picard/actions/workflows/tests.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/broadinstitute/picard/blob/master/LICENSE.txt) A set of Java command line tools for manipulating high-throughput sequencing (HTS) data and formats.