fixes #79, updated testing pipeline. Now it's possible to define whic… #108
This file contains 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
name: run-github-workflows | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
workflow_dispatch: | |
jobs: | |
solve-environments-and-upload-files: | |
name: run tcy, create environment, and export environment files | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest,windows-latest] | |
runs-on: ${{ matrix.os }} | |
permissions: | |
contents: write | |
defaults: | |
run: | |
shell: bash -el {0} | |
steps: | |
- name: checkout repository | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.head_ref }} | |
- name: setup python in order to run tcy.py | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.7 | |
- name: install python dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install pandas | |
python -m pip install pytest | |
- name: run tcy.py to create a .yml file for Linux (will be skipped for Windows) | |
if: runner.os == 'Linux' | |
run: python tcy.py linux --yml_name=${{ matrix.os }} --yml_dir=./environments --yml_file_name=${{ matrix.os }}.yml --tsv_path=./environments/packages.tsv --necessity=required | |
- name: run tcy.py to create a .yml file for Windows (will be skipped for Linux) | |
if: runner.os == 'Windows' | |
run: python tcy.py windows --yml_name=${{ matrix.os }} --yml_dir=./environments --yml_file_name=${{ matrix.os }}.yml --tsv_path=./environments/packages.tsv --necessity=required | |
- name: setup micromamba and create environment using .yml file | |
id: createEnvironment | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: ./environments/${{ matrix.os }}.yml | |
environment-name: ${{ matrix.os }} | |
- name: initialize conda for Git Bash (will be skipped for Linux) | |
if: runner.os == 'Windows' | |
run: echo ". /c/Miniconda/etc/profile.d/conda.sh" >> ~/.bash_profile | |
- name: export conda environment as .yml file and as spec-file.txt and export pip-packages as .txt file | |
run: | | |
conda env export -p "${MAMBA_ROOT_PREFIX}/envs/${{ matrix.os }}" | grep -v "^prefix: " | sed -E 's/^name:.*(ubuntu-latest|windows-latest)/name: \1/' > ./environments/${{ matrix.os }}_solved.yml | |
conda list -p "${MAMBA_ROOT_PREFIX}/envs/${{ matrix.os }}" --explicit > ./environments/${{ matrix.os }}_solved.txt | |
pip freeze | grep -v "@ file" > ./environments/${{ matrix.os }}_solved_pip-requirements.txt | |
- name: upload exported files as artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.os }} | |
path: | | |
./environments/${{ matrix.os }}.yml | |
./environments/${{ matrix.os }}_solved.yml | |
./environments/${{ matrix.os }}_solved.txt | |
./environments/${{ matrix.os }}_solved_pip-requirements.txt | |
download-artifacts-and-push: | |
name: download files and push to repo if something has changed | |
if: ${{ always() }} | |
needs: solve-environments-and-upload-files | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout repository | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.head_ref }} | |
- name: download all files that were created using different operating systems | |
uses: actions/download-artifact@v3 | |
with: | |
path: ./environments | |
- name: add and commit files (but only if something has changed) | |
uses: stefanzweifel/git-auto-commit-action@v4 |