Commit 84b2a741 authored by Benavides Ontiveros's avatar Benavides Ontiveros
Browse files

modify .gitlab yaml for reddit

parent 6dfb830c
Pipeline #12167 failed
stages: stages:
- lint - lint
- test
- diag - diag
- build - build
- deploy - deploy
...@@ -7,87 +8,133 @@ stages: ...@@ -7,87 +8,133 @@ stages:
variables: variables:
PYTHONPATH: "${CI_PROJECT_DIR}" PYTHONPATH: "${CI_PROJECT_DIR}"
DOCKER_REGISTRY: "docker.io" DOCKER_REGISTRY: "docker.io"
DOCKERHUB_REPO: "$DOCKER_USERNAME/reddit_data_fetcher" DOCKERHUB_REPO: "$DOCKER_USERNAME/teledatastream"
# ----------------- Base Template for Docker Executor ----------------- # =====================================================================
# BASE JOB TEMPLATE (Docker executor)
# =====================================================================
.build_template: .build_template:
tags: ["ubuntu", "vm"] # Your runner tags tags: ["ubuntu", "vm"] # MUST match your runner tags
image: docker:24.0.9 # Main job container containing Docker CLI image: docker:24.0.9 # Contains Docker client
services: services:
- docker:dind # Docker daemon for building images - docker:dind # Start Docker daemon
variables: variables:
DOCKER_HOST: tcp://docker:2375 DOCKER_HOST: tcp://docker:2375
DOCKER_TLS_CERTDIR: "" # Needed to disable TLS for DIND DOCKER_TLS_CERTDIR: ""
before_script: before_script:
- echo "=== Docker info (from DinD service) ===" - echo "Running inside Docker executor with Docker-in-Docker"
- docker info || true - docker info || true
# ----------------- Lint Stage -----------------
# This does not need Docker; run it with a Python image. # =====================================================================
# LINT
# =====================================================================
lint: lint:
stage: lint stage: lint
image: python:3.10 image: python:3.10
script: tags: ["ubuntu", "vm"]
before_script:
- pip install flake8 - pip install flake8
- echo "Linting Python code..." script:
- echo "Linting Python code.."
- flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
- flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- echo "Done running Python lint stage" - echo "Done running the Python Lint stage"
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_BRANCH'
- if: '$CI_COMMIT_TAG'
when: never
# =====================================================================
# TEST
# =====================================================================
test:
stage: test
image: python:3.10
tags: ["ubuntu", "vm"]
before_script:
- pip install pytest
- echo "Running Tests"
script:
- pytest -q || echo "No tests found"
rules: rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_BRANCH' - if: '$CI_COMMIT_BRANCH'
when: always - if: '$CI_COMMIT_TAG'
when: never
# ----------------- Diagnostics Stage ----------------- # =====================================================================
# DIAGNOSTICS
# =====================================================================
diag: diag:
stage: diag stage: diag
extends: .build_template extends: .build_template
script: | script:
echo "=== Checking Docker connectivity ===" - echo "Check Docker access:"
ls -l /var/run || true - ls -l /var/run
stat /var/run/docker.sock || true - stat /var/run/docker.sock || true
docker version || true - docker version || true
docker info || true - docker info || true
rules: rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_BRANCH' - if: '$CI_COMMIT_BRANCH'
when: always - if: '$CI_COMMIT_TAG'
when: never
# ----------------- Build Stage ----------------- # =====================================================================
# BUILD
# =====================================================================
build: build:
stage: build stage: build
extends: .build_template extends: .build_template
script: | script:
echo "Logging in to Docker registry..." - echo "Logging in to Docker registry..."
echo "$DOCKER_TOKEN" | docker login -u "$DOCKER_USERNAME" --password-stdin - echo "$DOCKER_TOKEN" | docker login -u "$DOCKER_USERNAME" --password-stdin
- echo "Building Docker image for commit: ${CI_COMMIT_SHORT_SHA}"
echo "Building Docker image for commit: ${CI_COMMIT_SHORT_SHA}" - docker build \
docker build \
--build-arg REDDIT_CLIENT_ID="$REDDIT_CLIENT_ID" \ --build-arg REDDIT_CLIENT_ID="$REDDIT_CLIENT_ID" \
--build-arg REDDIT_CLIENT_SECRET="$REDDIT_CLIENT_SECRET" \ --build-arg REDDIT_CLIENT_SECRET="$REDDIT_CLIENT_SECRET" \
-t $DOCKERHUB_REPO:$CI_COMMIT_SHORT_SHA . -t $DOCKERHUB_REPO:$CI_COMMIT_SHORT_SHA .
echo "Docker image built successfully." after_script:
- echo "Docker image built successfully!"
rules: rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: never
- if: '$CI_COMMIT_BRANCH' - if: '$CI_COMMIT_BRANCH'
when: always - if: '$CI_COMMIT_TAG'
when: never
# ----------------- Deploy Stage ----------------- # =====================================================================
# DEPLOY
# =====================================================================
deploy: deploy:
stage: deploy stage: deploy
extends: .build_template extends: .build_template
script: | script:
echo "Logging in to Docker registry..." - echo "Logging in to Docker registry..."
echo "$DOCKER_TOKEN" | docker login -u "$DOCKER_USERNAME" --password-stdin - echo "$DOCKER_TOKEN" | docker login -u "$DOCKER_USERNAME" --password-stdin
echo "Pushing Docker image..." - echo "Pushing Docker image..."
docker push $DOCKERHUB_REPO:$CI_COMMIT_SHORT_SHA - docker push $DOCKERHUB_REPO:$CI_COMMIT_SHORT_SHA
if [ "$CI_COMMIT_BRANCH" = "$CI_DEFAULT_BRANCH" ]; then - if [ "$CI_COMMIT_BRANCH" = "$CI_DEFAULT_BRANCH" ]; then
echo "Tagging as 'latest'..." echo "Tagging image as latest...";
docker tag $DOCKERHUB_REPO:$CI_COMMIT_SHORT_SHA $DOCKERHUB_REPO:latest docker tag $DOCKERHUB_REPO:$CI_COMMIT_SHORT_SHA $DOCKERHUB_REPO:latest;
docker push $DOCKERHUB_REPO:latest docker push $DOCKERHUB_REPO:latest;
fi fi
echo "Deploy completed."
rules: rules:
- if: '$CI_COMMIT_BRANCH' - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: always when: never
\ No newline at end of file - if: '$CI_COMMIT_TAG'
when: never
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
- when: never
\ 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