Github Actions - Build Dev Biweekly Anaconda Release #49
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
| # See https://github.com/actions/runner-images?tab=readme-ov-file#available-images for Github's Available Images | |
| name: Github Actions - Build Dev Biweekly Anaconda Release | |
| env: | |
| ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_TOKEN }} | |
| ENCRYPTION_KEY: ${{ secrets.KDU_ENC_KEY }} | |
| on: | |
| schedule: | |
| - cron: '0 5 * * 0' # 10:00 PM MST Monday (UTC: Sunday 5:00 AM) | |
| workflow_dispatch: # Option to manually run pipeline in Actions | |
| jobs: | |
| build-ubuntu: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Mambaforge | |
| uses: conda-incubator/setup-miniconda@v3 | |
| with: | |
| miniforge-variant: Miniforge3 | |
| auto-update-conda: true | |
| use-mamba: true | |
| - name: Build Release | |
| run: | | |
| export ISIS_VERSION=$(date +%Y.%m.%d) | |
| echo $ISIS_VERSION | |
| mamba install python=3.12 conda-build anaconda-client | |
| git fetch origin | |
| git checkout dev | |
| cd recipe | |
| echo $ENCRYPTION_KEY | openssl enc -aes-256-cbc -d -in kakadu/kakadu_7_9.zip.enc -out kakadu/kakadu_7_9.zip -pbkdf2 -iter 10000 -pass stdin | |
| unzip -j kakadu/kakadu_7_9.zip -d /tmp/kakadu_7_9 -x "__MACOSX/*" | |
| sed -i "s|/isisData/kakadu|/tmp/kakadu_7_9|g" build.sh | |
| sed -i "s/{% set version = \"[^\"]*\" %}/{% set version = \"$ISIS_VERSION\" %}/" meta.yaml | |
| sed -i "s/version: {{ version }}.0_RC[^ ]*/version: {{ version }}/" meta.yaml | |
| sed -i "s/git_tag: {{ version }}/git_tag: 'dev'/" meta.yaml | |
| conda build . -c usgs-astrogeology -c conda-forge --override-channels --user usgs-astrogeology --label dev | |
| build-macos13-x64: | |
| runs-on: macos-13 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Mambaforge | |
| uses: conda-incubator/setup-miniconda@v3 | |
| with: | |
| miniforge-variant: Miniforge3 | |
| auto-update-conda: true | |
| use-mamba: true | |
| - name: Build Release | |
| run: | | |
| export ISIS_VERSION=$(date +%Y.%m.%d) | |
| echo $ISIS_VERSION | |
| mamba install conda-build anaconda-client | |
| git fetch origin | |
| git checkout dev | |
| cd recipe | |
| echo $ENCRYPTION_KEY | openssl enc -aes-256-cbc -d -in kakadu/kakadu_7_9.zip.enc -out kakadu/kakadu_7_9.zip -pbkdf2 -iter 10000 -pass stdin | |
| unzip -j kakadu/kakadu_7_9.zip -d /tmp/kakadu_7_9 -x "__MACOSX/*" | |
| sed -i '' "s|/isisData/kakadu|/tmp/kakadu_7_9|g" build.sh | |
| sed -i '' "s/{% set version = \"[^\"]*\" %}/{% set version = \"$ISIS_VERSION\" %}/" meta.yaml | |
| sed -i '' "s/version: {{ version }}.0_RC[^ ]*/version: {{ version }}/" meta.yaml | |
| sed -i '' "s/git_tag: {{ version }}/git_tag: 'dev'/" meta.yaml | |
| conda build . -c usgs-astrogeology -c conda-forge --override-channels --user usgs-astrogeology --label dev | |
| build-macos15-arm64: | |
| runs-on: macos-15 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Mambaforge | |
| uses: conda-incubator/setup-miniconda@v3 | |
| with: | |
| miniforge-variant: Miniforge3 | |
| auto-update-conda: true | |
| use-mamba: true | |
| - name: Build Release | |
| run: | | |
| export ISIS_VERSION=$(date +%Y.%m.%d) | |
| echo $ISIS_VERSION | |
| mamba install conda-build anaconda-client | |
| git fetch origin | |
| git checkout dev | |
| cd recipe | |
| echo $ENCRYPTION_KEY | openssl enc -aes-256-cbc -d -in kakadu/kakadu_7_9.zip.enc -out kakadu/kakadu_7_9.zip -pbkdf2 -iter 10000 -pass stdin | |
| unzip -j kakadu/kakadu_7_9.zip -d /tmp/kakadu_7_9 -x "__MACOSX/*" | |
| sed -i '' "s|/isisData/kakadu|/tmp/kakadu_7_9|g" build.sh | |
| sed -i '' "s/{% set version = \"[^\"]*\" %}/{% set version = \"$ISIS_VERSION\" %}/" meta.yaml | |
| sed -i '' "s/version: {{ version }}.0_RC[^ ]*/version: {{ version }}/" meta.yaml | |
| sed -i '' "s/git_tag: {{ version }}/git_tag: 'dev'/" meta.yaml | |
| conda build . -c usgs-astrogeology -c conda-forge --override-channels --user usgs-astrogeology --label dev | |
| test-ubuntu: | |
| runs-on: ubuntu-latest | |
| needs: build-ubuntu | |
| steps: | |
| - name: Set up Miniforge | |
| uses: conda-incubator/setup-miniconda@v3 | |
| with: | |
| miniforge-variant: Miniforge3 | |
| auto-update-conda: true | |
| activate-environment: isis-test | |
| use-mamba: true | |
| mamba-version: "1.5.3" | |
| - name: Conda install and test spiceinit | |
| run: | | |
| export ISIS_VERSION=$(date +%Y.%m.%d) | |
| source "${CONDA}/etc/profile.d/conda.sh" | |
| conda activate isis-test | |
| conda install -c conda-forge -c usgs-astrogeology usgs-astrogeology/label/dev::isis=${ISIS_VERSION} -y | |
| export ISISROOT=$CONDA_PREFIX | |
| conda list isis | |
| spiceinit -h | |
| test-macos13-x64: | |
| runs-on: macos-13 | |
| needs: build-macos13-x64 | |
| steps: | |
| - name: Set up Miniforge | |
| uses: conda-incubator/setup-miniconda@v3 | |
| with: | |
| miniforge-variant: Miniforge3 | |
| auto-update-conda: true | |
| activate-environment: isis-test | |
| use-mamba: true | |
| mamba-version: "1.5.3" | |
| - name: Conda install and test spiceinit | |
| run: | | |
| export ISIS_VERSION=$(date +%Y.%m.%d) | |
| source "${CONDA}/etc/profile.d/conda.sh" | |
| conda activate isis-test | |
| conda install -c conda-forge -c usgs-astrogeology usgs-astrogeology/label/dev::isis=${ISIS_VERSION} -y | |
| export ISISROOT=$CONDA_PREFIX | |
| conda list isis | |
| spiceinit -h | |
| test-macos15-arm64: | |
| runs-on: macos-15 | |
| needs: build-macos15-arm64 | |
| steps: | |
| - name: Set up Miniforge | |
| uses: conda-incubator/setup-miniconda@v3 | |
| with: | |
| miniforge-variant: Miniforge3 | |
| auto-update-conda: true | |
| activate-environment: isis-test | |
| use-mamba: true | |
| mamba-version: "1.5.3" | |
| - name: Conda install and test spiceinit | |
| run: | | |
| export ISIS_VERSION=$(date +%Y.%m.%d) | |
| source "${CONDA}/etc/profile.d/conda.sh" | |
| conda activate isis-test | |
| conda install -c conda-forge -c usgs-astrogeology usgs-astrogeology/label/dev::isis=${ISIS_VERSION} -y | |
| export ISISROOT=$CONDA_PREFIX | |
| conda list isis | |
| spiceinit -h | |
| docs: | |
| name: Build and Upload ISIS Dev Docs | |
| runs-on: ubuntu-latest | |
| needs: [test-ubuntu, test-macos13-x64, test-macos15-arm64] | |
| if: | | |
| needs.test-ubuntu.result == 'success' || | |
| needs.test-macos13-x64.result == 'success' || | |
| needs.test-macos15-arm64.result == 'success' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Set up Conda for doc build | |
| uses: conda-incubator/setup-miniconda@v3 | |
| with: | |
| miniforge-variant: Miniforge3 | |
| auto-update-conda: true | |
| environment-file: environment.yml | |
| activate-environment: isis | |
| use-mamba: true | |
| - name: Build documentation | |
| run: | | |
| source "${CONDA}/etc/profile.d/conda.sh" | |
| conda activate isis | |
| mkdir build && cd build | |
| export ISISROOT=$(pwd) | |
| cmake -GNinja ../isis | |
| ninja docs | |
| - name: Set AWS credentials for upload | |
| uses: aws-actions/configure-aws-credentials@v4 | |
| 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 | |
| run: | | |
| cd /home/runner/work/ISIS3/ISIS3/build/docs && cd "$(find . -maxdepth 1 -type d ! -name .)" | |
| echo "Uploading documentation to S3..." | |
| aws s3 sync ./ s3://asc-public-docs/isis-site/dev/ --delete |