Skip to content
Snippets Groups Projects
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
No related branches found
No related tags found
No related merge requests found
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
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment