Skip to content

Test skip before_script and create env on the fly #194

Test skip before_script and create env on the fly

Test skip before_script and create env on the fly #194

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- main
release:
types:
- published
permissions:
contents: write
env:
SKIP_DEPLOY: false
SKIP_INSTALL: false
SKIP_TEST: false
jobs:
# before_script:
# runs-on: self-hosted
# strategy:
# matrix:
# node-version: [ 20.x ]
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# - name: Set up Python
# uses: actions/setup-python@v5
# with:
# python-version: '3.x'
# - name: Install dependencies
# run: |
# conda init bash
# source ~/.bashrc
# mamba env remove --name ci_temp_env --yes || echo "Environment ci_temp_env does not exist"
# mamba create -n ci_temp_env --clone ci_env
# source activate ci_temp_env
# # TODO: create the ci_env with the installation of the following packages and remove the following line
# mamba install json5 cmcrameri conda-forge::sphinx_rtd_theme
# shell: bash
test_sarvey:
runs-on: self-hosted
needs: test_sarvey_install
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Run tests
if: env.SKIP_TEST == 'false'
run: |
conda init bash
source ~/.bashrc
source activate ci_temp_env
rm -rf tests/testdata
wget -nv -c -O testdata.zip https://seafile.projekt.uni-hannover.de/f/4b3be399dffa488e98db/?dl=1
unzip testdata.zip
mv testdata tests/
mamba list
make pytest
shell: bash
make_docs:
runs-on: self-hosted
needs: test_sarvey_install
steps:
- name: create docs
if: env.SKIP_DEPLOY == 'false'
run: |
conda init bash
source ~/.bashrc
source activate ci_temp_env
make docs
shell: bash
- name: Upload coverage report
if: env.SKIP_DEPLOY == 'false'
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: htmlcov/
- name: Upload report.html
if: env.SKIP_DEPLOY == 'false'
uses: actions/upload-artifact@v4
with:
name: test-report
path: report.html
- name: Upload docs
if: env.SKIP_DEPLOY == 'false'
uses: actions/upload-artifact@v4
with:
name: docs
path: docs/_build/html/
- name: Upload cobertura coverage report
if: env.SKIP_DEPLOY == 'false'
uses: actions/upload-artifact@v4
with:
name: cobertura-coverage
path: coverage.xml
- name: Upload junit report
if: env.SKIP_DEPLOY == 'false'
uses: actions/upload-artifact@v4
with:
name: junit-report
path: report.xml
test_styles:
runs-on: self-hosted
needs: test_sarvey_install
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install dependencies
if: env.SKIP_TEST == 'false'
run: |
conda init bash
source ~/.bashrc
source activate ci_temp_env
make lint
shell: bash
- name: Upload flake8 log
if: env.SKIP_TEST == 'false'
uses: actions/upload-artifact@v4
with:
name: flake8-log
path: tests/linting/flake8.log
- name: Upload pycodestyle log
if: env.SKIP_TEST == 'false'
uses: actions/upload-artifact@v4
with:
name: pycodestyle-log
path: tests/linting/pycodestyle.log
- name: Upload pydocstyle log
if: env.SKIP_TEST == 'false'
uses: actions/upload-artifact@v4
with:
name: pydocstyle-log
path: tests/linting/pydocstyle.log
test_urls:
runs-on: self-hosted
needs: test_sarvey_install
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install dependencies
if: env.SKIP_TEST == 'false'
run: |
conda init bash
source ~/.bashrc
source activate ci_temp_env
make urlcheck
shell: bash
test_sarvey_install:
runs-on: self-hosted
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install dependencies
if: env.SKIP_INSTALL == 'false'
run: |
source activate base
# mamba env remove --name sarvey_testinstall --yes || echo "Environment sarvey_testinstall does not exist"
mamba env remove --name ci_temp_env --yes || echo "Environment ci_temp_env does not exist"
pip install conda-merge
wget https://raw.githubusercontent.com/insarlab/MiaplPy/main/conda-env.yml
conda-merge conda-env.yml tests/CI_docker/context/environment_sarvey.yml > env.yml
# mamba env create --name sarvey_testinstall -f env.yml
mamba env create --name ci_temp_env -f env.yml
# source activate sarvey_testinstall
source activate ci_temp_env
pip install git+https://github.com/insarlab/MiaplPy.git
pip install .
OUTPUT=$(pip check) || { echo "$OUTPUT"; true; }
cd ..
python -c "import sarvey; print(sarvey)"
shell: bash
deploy_pages:
runs-on: self-hosted
needs: make_docs
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Download docs
uses: actions/download-artifact@v4
with:
name: docs
path: docs/_build/html/
- name: Download coverage report
uses: actions/download-artifact@v4
with:
name: coverage-report
path: htmlcov/
- name: Download report.html
uses: actions/download-artifact@v4
with:
name: test-report
- name: Deploy to GitHub Pages
# trigger if merged into the main branch || published new tag
if: env.SKIP_DEPLOY == 'false' && github.event_name != 'pull_request' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/'))
run: |
rm -rf public
git clone --branch gh-pages https://github.com/${{ github.repository }} public
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
TAG_NAME=${GITHUB_REF##*/}
echo "Deploying to GitHub Pages for version tag: $TAG_NAME"
DOCS_PATH=public/tags/$TAG_NAME
else
echo "Deploying to GitHub Pages for main branch"
DOCS_PATH=public/dev
fi
rm -rf $DOCS_PATH
mkdir -p $DOCS_PATH/docs
mkdir -p $DOCS_PATH/images
mkdir -p $DOCS_PATH/coverage
mkdir -p $DOCS_PATH/test_reports
cp -r docs/_build/html/* $DOCS_PATH/docs
# cp -r htmlcov/* $DOCS_PATH/coverage/
# cp report.html $DOCS_PATH/test_reports/
ls -al $DOCS_PATH
ls -al $DOCS_PATH/docs
ls -al $DOCS_PATH/coverage
ls -al $DOCS_PATH/test_reports
shell: bash
- name: Upload to GitHub Pages
if: env.SKIP_DEPLOY == 'false'
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public