Commit 44dc2ca4 authored by Benavides Ontiveros's avatar Benavides Ontiveros
Browse files

add .gitlab-ci.yml

parent 17719cb5
Pipeline #12156 failed
stages:
- lint
- test
- diag
- build
- deploy
variables:
PYTHONPATH: "${CI_PROJECT_DIR}"
DOCKER_REGISTRY: "docker.io"
DOCKERHUB_REPO: "$DOCKER_USERNAME/reddit_data_fetcher" # Replace with your new repo name
.build_template:
tags: ["ubuntu", "vm"] # Match your runner tags
before_script:
- echo "Docker CLI info:"
- docker version
lint:
stage: lint
image: python:3.10
extends: .build_template
before_script:
- pip install flake8
script:
- echo "Linting Python code..."
- flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
- flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- echo "Done running Python lint stage"
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_BRANCH'
- if: '$CI_COMMIT_TAG'
when: never
test:
stage: test
image: python:3.10
extends: .build_template
before_script:
- pip install pytest
- echo "Running Tests"
- echo "PYTHONPATH: ${PYTHONPATH}"
- echo "PWD=$(pwd)"
script:
- echo "Running PyTests"
after_script:
- echo "Tests completed successfully"
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_BRANCH'
- if: '$CI_COMMIT_TAG'
when: never
diag:
stage: diag
image: docker:24.0.9
tags: ["ubuntu","vm"]
script:
- echo "Check socket:"
- ls -l /var/run || true
- stat /var/run/docker.sock || true
- echo "Docker info:"
- docker version || true
- docker info || true
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_BRANCH'
- if: '$CI_COMMIT_TAG'
when: never
build:
stage: build
image: docker:24.0.9
extends: .build_template
before_script:
- echo "Building Docker image for commit: ${CI_COMMIT_SHORT_SHA}"
- echo "Logging in to Docker registry..."
- echo "$DOCKER_TOKEN" | docker login -u "$DOCKER_USERNAME" --password-stdin
script:
- echo "Building image..."
- cd . # Replace '.' if your Dockerfile is in a subfolder
- docker build -t $DOCKERHUB_REPO:$CI_COMMIT_SHORT_SHA .
after_script:
- echo "Docker image built successfully!"
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: never
- if: '$CI_COMMIT_BRANCH'
- if: '$CI_COMMIT_TAG'
when: never
deploy:
stage: deploy
image: docker:24.0.9
tags: ["ubuntu","vm"]
script:
- echo "$DOCKER_TOKEN" | docker login -u "$DOCKER_USERNAME" --password-stdin
- echo "Logged into Docker Hub successfully!"
- docker push $DOCKERHUB_REPO:$CI_COMMIT_SHORT_SHA
- echo "Pushed Docker image to Docker Hub successfully!"
# ===== OPTIONAL: update tag for default branch =====
- if [ "$CI_COMMIT_BRANCH" = "$CI_DEFAULT_BRANCH" ]; then
docker tag $DOCKERHUB_REPO:$CI_COMMIT_SHORT_SHA $DOCKERHUB_REPO:latest;
docker push $DOCKERHUB_REPO:latest;
fi
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: never
- if: '$CI_COMMIT_TAG'
when: never
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment