Skip to content
Snippets Groups Projects
Commit 305a0626 authored by Davide Ricci's avatar Davide Ricci
Browse files

prova doc

parent 6344a435
No related branches found
No related tags found
No related merge requests found
Pipeline #29528 failed
# .gitlab-ci.yml # The Docker image that will be used to build your app
image: python:3.12 image: python:3.12
create-pages:
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: pages:
stage: deploy_docs # The folder that contains the files to be exposed at the Page URL
tags: publish: public
- git-run-ia2 rules:
# Commands to run before the main script. Perfect for installing dependencies. # 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: before_script:
- pip install -r docs/requirements.txt - pip install -r docs/requirements.txt
script: script:
- sphinx-apidoc -o docs/source noctua - sphinx-apidoc -o docs/source noctua
- sphinx-build -b html docs/source public - 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}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment