From 305a0626b0f68d1b525b6566975fd8e5cde5afa5 Mon Sep 17 00:00:00 2001 From: Davide Ricci Date: Wed, 18 Jun 2025 17:05:18 +0000 Subject: [PATCH] prova doc --- .gitlab-ci.yml | 178 +++---------------------------------------------- 1 file changed, 10 insertions(+), 168 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 90e21c9..ec529b0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,174 +1,16 @@ -# .gitlab-ci.yml - +# The Docker image that will be used to build your app image: python:3.12 - -variables: - PROJECT: "noctua" - PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" - FORMAT_TARGETS: "${PROJECT}" # For sed, autopep8, isort - PYLINT_TARGETS: "${PROJECT}" # For pylint - GIT_USER_EMAIL: "davide.ricci@inaf.it" - GIT_USER_NAME: "Davide GitLab CI" - FORMATTED_BRANCH_NAME: "validated" - -cache: - key: "$CI_COMMIT_REF_SLUG" # Cache pip downloads per branch - paths: - - .cache/pip - # - venv/ - -stages: - - setup_and_format - - lint # Does not modify code - - deploy_docs - - auto_commit - -# Job 1: Install ${PROJECT} and its dependencies -install_project: - stage: setup_and_format - tags: - - git-run-ia2 - script: - - echo "Current directory $(pwd)" - - ls -la - - echo "Python version $(python -v)" - - pip install --upgrade pip - - echo "Installing project '${PROJECT}' and its dependencies..." - - pip install -e . - - echo "${PROJECT} installation complete." - artifacts: - paths: - # Pass the entire workspace. This includes the checked-out code - # or if -e . modifies local files (e.g. .egg-info). - - . # The current working directory state - -# Job 2: Remove Trailing Whitespaces -fix_trailing_whitespaces: - stage: setup_and_format - tags: - - git-run-ia2 - needs: - - job: install_project - artifacts: true - script: - - echo "Current directory $(pwd)" - - ls -la - - echo "Removing trailing whitespaces from '${FORMAT_TARGETS}' directory..." - - find "${FORMAT_TARGETS}" -type f -name "*.py" -exec sed -i 's/[[:space:]]*$//' {} \; - - echo "Trailing whitespaces removed." - artifacts: - paths: - - . # Pass the modified workspace - -# Job 3: Apply isort -apply_isort: - stage: setup_and_format - tags: - - git-run-ia2 - needs: - - job: fix_trailing_whitespaces - artifacts: true - before_script: - - pip install isort - script: - - echo "Current directory $(pwd)" - - ls -la - - echo "Applying isort to '${FORMAT_TARGETS}' directory..." - # isort will use pyproject.toml for configuration - - isort "${FORMAT_TARGETS}" - - echo "isort formatting complete." - artifacts: - paths: - - . # Pass the modified workspace - -# Job 4: Apply autopep8 -apply_autopep8: - stage: setup_and_format - tags: - - git-run-ia2 - needs: - - job: apply_isort - artifacts: true - before_script: - - pip install autopep8 - script: - - echo "Current directory $(pwd)" - - ls -la - - echo "Applying autopep8 to '${FORMAT_TARGETS}' directory..." - - autopep8 --in-place --recursive --aggressive --aggressive "${FORMAT_TARGETS}" - - echo "autopep8 formatting complete." - artifacts: - paths: - - . # Pass the modified workspace - -# Job 5: Run Pylint -run_pylint: - stage: lint - tags: - - git-run-ia2 - needs: - - job: apply_autopep8 - artifacts: true - before_script: - - pip install pylint - script: - - echo "Current directory $(pwd)" - - echo "Running pylint on '${PYLINT_TARGETS}'..." - - pylint --version - - pylint --rcfile=.pylintrc --fail-on=E,F ${PYLINT_TARGETS}/sequencer.py || echo "Pylint finished with exit code $(( $? &2)) (non-zero indicates issues)" - - echo "Pylint check complete." - #rules: - # - if: $CI_PIPELINE_SOURCE == "merge_request_event" - # - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - # - when: manual - # allow_failure: true # Allow manual trigger to not fail overall pipeline if desired - - - -# Job 6: Create documentation -# This defines a job named 'pages'. GitLab recognizes this special name -# and knows that its purpose is to deploy a website to GitLab Pages. -pages: - stage: deploy_docs - tags: - - git-run-ia2 - # Commands to run before the main script. Perfect for installing dependencies. +create-pages: + pages: + # The folder that contains the files to be exposed at the Page URL + publish: public + rules: + # This ensures that only pushes to the default branch will trigger + # a pages deploy + - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH + # Functions that should be executed before the build script is run before_script: - pip install -r docs/requirements.txt script: - sphinx-apidoc -o docs/source noctua - sphinx-build -b html docs/source public - artifacts: - paths: - - . # Pass the modified workspace - # - public - # rules: - # - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - -# Job 7: commit in branch -commit_formatted_code: - stage: auto_commit - tags: - - git-run-ia2 - needs: - - job: run_pylint # Must pass pylint - - job: apply_autopep8 # Needs the final code state from formatting - artifacts: true - before_script: - - git config --global user.email "davide.ricci@inaf.it" - - git config --global user.name "CI Bot" - - git checkout "$CI_COMMIT_SHA" - script: - - echo "Checking for changes and committing to ${FORMATTED_BRANCH_NAME} branch..." - - git add . - - echo "Creating/updating branch '${FORMATTED_BRANCH_NAME}' based on commit $CI_COMMIT_SHA..." - - git checkout -B "${FORMATTED_BRANCH_NAME}" "$CI_COMMIT_SHA" - - MAIN_COMMIT_MSG=$(git log -1 --pretty=%B $CI_COMMIT_SHA) - - | - git commit -m "$MAIN_COMMIT_MSG - - Source Commit: $CI_COMMIT_SHA - - Date: $(date +"%Y-%m-%d %H:%M:%S") - - Job ID: $CI_JOB_ID - - Pipeline ID: $CI_PIPELINE_ID - - [skip ci]" - - git push --force https://davide.ricci:$GITLAB_TOKEN@www.ict.inaf.it/gitlab/davide.ricci/software-di-controllo.git ${FORMATTED_BRANCH_NAME} -- GitLab