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

modify .gitlab yaml for reddit

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