Unverified Commit c35c9d82 authored by Christine Kim's avatar Christine Kim Committed by GitHub
Browse files

Add github workflows (#20)



* Add github workflows

* added deploy step for docs

* updated ci_testing

---------

Co-authored-by: default avatarKelvin Rodriguez <krodriguez@usgs.gov>
parent d3b96df1
Loading
Loading
Loading
Loading
+141 −0
Original line number Diff line number Diff line
name: CMake

on: [push, pull_request]

env:
  # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
  BUILD_TYPE: Release

jobs:
  build-library:

    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest]
        python-version: ["3.8", "3.9", "3.10", "3.11"]
    defaults:
      run:
        shell: bash -l {0}
    env:
      SSPICE_DEBUG: y
    steps:
      - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
        with:
          submodules: true
      - uses: conda-incubator/setup-miniconda@3b0f2504dd76ef23b6d31f291f4913fb60ab5ff3
        with:
          miniforge-version: latest
          use-mamba: true
          channels: conda-forge
          activate-environment: ale
          environment-file: environment.yml
          auto-activate-base: false
          auto-update-conda: true
          python-version: ${{ matrix.python-version }}
      - name: Check build environment
        run: |
          conda list
      - name: Configure CMake
        working-directory: ${{github.workspace}}/build
        run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSPICEQL_BUILD_DOCS=OFF -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install
      - name: Build
        working-directory: ${{github.workspace}}/build
        # Execute the build.  You can specify a specific target with "--target <NAME>"
        run: |
          cmake --build . --config $BUILD_TYPE
  
      - name: Test
        working-directory: ${{github.workspace}}/build
        # Execute tests defined by the CMake configuration.
        # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
        run: ctest -VV -C $BUILD_TYPE
  
      - name: Install
        working-directory: ${{github.workspace}}/build
        # Execute the install.  You can specify a specific target with "--target <NAME>"
        run: |
          cmake --install . --config $BUILD_TYPE
  
      - name: Check install
        working-directory: ${{github.workspace}}/install
        # Check that the library installed properly
        run: |
            if [ "$RUNNER_OS" == "macOS" ]; then
              test -e lib/libSpiceQL.dylib
            elif [ "$RUNNER_OS" == "Linux" ]; then
              test -e lib/libSpiceQL.so
            fi
            test -e include/SpiceQL/spiceql.h
            rm -rf ${{github.workspace}}/build
            python -c "import pyspiceql"
  
      # compair all json files against the schema 
      - name: check json files
        working-directory: ${{github.workspace}}/SpiceQL/db/schema
        run: |
          for file in *.json;
              do
              pwd
              jsonschema --instance "$file" spiceMissionSchmea.schema.json 
          done;
  
    build-docs:
      runs-on: ubuntu-latest
      defaults:
        run:
          shell: bash -l {0}
      steps:
        - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
        - uses: conda-incubator/setup-miniconda@3b0f2504dd76ef23b6d31f291f4913fb60ab5ff3
          with:
              miniconda-version: "latest"
              activate-environment: spiceql
              environment-file: environment.yml
              auto-activate-base: false
              auto-update-conda: true
  
        - name: Conda info
          run: |
              conda info
              conda list
  
        - name: Create Build Environment
          # Some projects don't allow in-source building, so create separate build and install
          # directorie; we'll use them as our working directories for subsequent commands.
          run: |
              cmake -E make_directory ${{github.workspace}}/build
              cmake -E make_directory ${{github.workspace}}/install
  
        - name: Configure CMake
          working-directory: ${{github.workspace}}/build
          run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSPICEQL_BUILD_LIB=OFF -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install
  
        - name: Build
          working-directory: ${{github.workspace}}/build
          # Execute the build.
          run: |
            cmake --build . --config $BUILD_TYPE
  
        - name: Check Build Docs
          working-directory: ${{github.workspace}}/build/docs/sphinx
          # Check for the built docs
          run: |
              test -e index.html
              test -e reference/api.html
              test -e reference/tutorials.html
  
        - name: Install Docs
          working-directory: ${{github.workspace}}/build
          # Install the build.
          run: |
            cmake --install . --config $BUILD_TYPE
  
        - name: Check Install Docs
          working-directory: ${{github.workspace}}/install
          # Check for the built docs
          run: |
              test -e share/doc/SpiceQL/sphinx/index.html
              test -e share/doc/SpiceQL/sphinx/reference/api.html
              test -e share/doc/SpiceQL/sphinx/reference/tutorials.html
  
+55 −0
Original line number Diff line number Diff line
name: Deploy

on:
  push:
    branches:
      - main

env:
  ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_TOKEN }}

jobs:
  anaconda-deploy:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest]
    defaults:
      run:
        shell: bash -l {0}
    steps:
    - uses: actions/checkout@v2
    - uses: conda-incubator/setup-miniconda@v2
      with:
          miniconda-version: "latest"
          auto-activate-base: true
          auto-update-conda: true
    - name: Setup conda tools
      run: |
          conda config --set always_yes yes
          conda config --set anaconda_upload yes
          conda install -c conda-forge conda-build anaconda-client conda-verify
    - name: Build tarbll
      run: |
          conda build --user usgs-astrogeology --label dev -c conda-forge -c tudat-team recipe/

  aws-docs-deploy:
    if: ${{ github.event.workflow_run.conclusion == 'success' }}
    runs-on: ubuntu-latest
    defaults:
      run:
        shell: bash -el {0}
    steps:            
      - name: Set AWS credentials for upload
        uses: aws-actions/configure-aws-credentials@0e613a0980cbf65ed5b322eb7a1e075d28913a83
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: us-west-2
  
      - name: Upload to S3
        working-directory: ${{github.workspace}}/install
        run: |
          ls -l share/doc/SpiceQL/sphinx/
          aws s3 sync --delete share/doc/SpiceQL/sphinx/ s3://asc-public-docs/software_manuals/spiceql/
          
 No newline at end of file