Implement version flag #284
Workflow file for this run
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
| name: CI | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| - 'v?*b' | |
| - 'v?*beta' | |
| push: | |
| branches: | |
| - main | |
| release: | |
| types: | |
| - published | |
| permissions: | |
| contents: write | |
| env: | |
| SKIP_DEPLOY: true | |
| SKIP_INSTALL: false | |
| SKIP_TEST: false | |
| jobs: | |
| test_sarvey: | |
| 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: Run tests | |
| if: env.SKIP_TEST == 'false' | |
| run: | | |
| source /opt/conda/etc/profile.d/conda.sh | |
| conda init bash | |
| source ~/.bashrc | |
| conda activate ci_env | |
| rm -rf tests/testdata | |
| # wget -nv -c -O testdata.zip https://seafile.projekt.uni-hannover.de/f/4b3be399dffa488e98db/?dl=1 | |
| wget -nv -c -O testdata.zip https://seafile.projekt.uni-hannover.de/f/104b499f6f7e4360877d/?dl=1 | |
| unzip testdata.zip | |
| mkdir -p test | |
| mv testdata tests/ | |
| mamba list | |
| make pytest | |
| shell: bash | |
| - name: create docs | |
| if: env.SKIP_DEPLOY == 'false' | |
| run: | | |
| conda init bash | |
| source ~/.bashrc | |
| source activate ci_env | |
| # replace documentation address for tags befro make docs | |
| IFS='/' read -r OWNER REPO <<< "${GITHUB_REPOSITORY}" | |
| URL_IO="https://${OWNER}.github.io/${REPO}" | |
| URL="https://github.com/${OWNER}/${REPO}" | |
| echo "Repository URL: $URL" | |
| echo "Repository Documentation URL: $URL" | |
| if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
| TAG_NAME=${GITHUB_REF##*/} | |
| DEFAULT_URL="${URL_IO}/main" | |
| NEW_URL="${URL_IO}/tags/${TAG_NAME}" | |
| sed -i "s|$DEFAULT_URL|$NEW_URL|g" README.rst | |
| fi | |
| # update new badge URL based on the branch or tag | |
| if [[ "${GITHUB_REF}" == refs/tags/* ]]; then | |
| TAG_NAME=${GITHUB_REF##*/} | |
| BADGE_URL="${URL}/actions/workflows/ci.yml/badge.svg?branch=$TAG_NAME" | |
| else | |
| BADGE_URL="${URL}/actions/workflows/ci.yml/badge.svg?branch=main" | |
| fi | |
| echo "Badge URL: $BADGE_URL" | |
| BADGE_DEFAULT_URL="${URL}/actions/workflows/ci.yml/badge.svg" | |
| sed -i "s|${BADGE_DEFAULT_URL}|$BADGE_URL|g" README.rst | |
| echo "README.rst content" | |
| cat README.rst | |
| 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 | |
| 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: | | |
| source /opt/conda/etc/profile.d/conda.sh | |
| conda init bash | |
| source ~/.bashrc | |
| conda activate ci_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 | |
| 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: | | |
| source /opt/conda/etc/profile.d/conda.sh | |
| conda init bash | |
| source ~/.bashrc | |
| source activate ci_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 /opt/conda/etc/profile.d/conda.sh | |
| conda activate base | |
| conda create -n sarvey_testinstall python=3.10 pip -y | |
| conda activate sarvey_testinstall | |
| conda install conda-forge::pysolid -y | |
| conda install conda-forge::gdal | |
| pip install git+https://github.com/insarlab/MiaplPy.git | |
| # get current branch for installation | |
| IFS='/' read -r OWNER REPO <<< "${GITHUB_REPOSITORY}" | |
| URL="https://github.com/${OWNER}/${REPO}" | |
| URL_IO="https://${OWNER}.github.io/${REPO}" | |
| echo "Repository URL: ${URL}" | |
| echo "Repository Documentation URL: ${URL}" | |
| if [[ "$GITHUB_REF" == refs/tags/* ]]; then | |
| current_ref="${GITHUB_REF##*/}" | |
| elif [[ "$GITHUB_REF" == refs/heads/* ]]; then | |
| current_ref="${GITHUB_REF#refs/heads/}" | |
| elif [[ "$GITHUB_REF" == refs/pull/* ]]; then | |
| current_ref="${GITHUB_HEAD_REF}" | |
| else | |
| current_ref="${GITHUB_REF}" | |
| fi | |
| echo "Current branch/tag: ${URL}.git@$current_ref" | |
| pip install git+${URL}.git@$current_ref | |
| pip install sarvey[dev] | |
| OUTPUT=$(pip check) || { echo "$OUTPUT"; true; } | |
| conda list | |
| python -c "import sarvey; print(sarvey)" | |
| shell: bash | |
| # deploy_pages: | |
| # runs-on: self-hosted | |
| # needs: | |
| # - test_sarvey | |
| # - test_urls | |
| # - test_styles | |
| # 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/main | |
| # 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 |