diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..166f132d4 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,80 @@ +name: ci + +# Controls when the action will run +on: + + # Trigger the workflow on all pushes, except on tag creation + push: + branches: + - '**' + tags-ignore: + - '**' + + # Trigger the workflow on all pull requests + pull_request: ~ + + # Allow workflow to be dispatched on demand + workflow_dispatch: ~ + +jobs: + ci: + name: ci + strategy: + matrix: + name: + - gnu-10@ubuntu-20.04 + - clang-12@ubuntu-20.04 + - gnu-10@ubuntu-18.04 + - clang-9@ubuntu-18.04 + - gnu-10@macos-10.15 + - clang-12@macos-10.15 + include: + - name: gnu-10@ubuntu-20.04 + os: ubuntu-20.04 + compiler: gnu-10 + compiler_cc: gcc-10 + compiler_fc: gfortran-10 + - name: clang-12@ubuntu-20.04 + os: ubuntu-20.04 + compiler: clang-12 + compiler_cc: clang-12 + compiler_fc: gfortran-10 + - name: gnu-10@ubuntu-18.04 + os: ubuntu-18.04 + compiler: gnu-10 + compiler_cc: gcc-10 + compiler_fc: gfortran-10 + - name: clang-9@ubuntu-18.04 + os: ubuntu-18.04 + compiler: clang-9 + compiler_cc: clang-9 + compiler_fc: gfortran-9 + - name: gnu-10@macos-10.15 + os: macos-10.15 + compiler: gnu-10 + compiler_cc: gcc-10 + compiler_fc: gfortran-10 + - name: clang-12@macos-10.15 + os: macos-10.15 + compiler: clang-12 + compiler_cc: ~ + compiler_cxx: ~ + compiler_fc: gfortran-10 + runs-on: ${{ matrix.os }} + steps: + - name: Checkout Repository + uses: actions/checkout@v2 + + - name: Build & Test + id: build-test + uses: ecmwf-actions/build-package@v1 + with: + self_coverage: true + dependencies: ecmwf/ecbuild + dependency_branch: develop + + - name: Codecov Upload + if: steps.build-test.outputs.coverage_file && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/develop') + uses: codecov/codecov-action@v2 + with: + files: ${{ steps.build-test.outputs.coverage_file }}