test ci job
This commit is contained in:
158
.gitlab-ci.yml
158
.gitlab-ci.yml
@@ -1,7 +1,5 @@
|
||||
stages:
|
||||
- test
|
||||
- build
|
||||
- deploy
|
||||
|
||||
variables:
|
||||
DOCKER_DRIVER: overlay2
|
||||
@@ -12,153 +10,11 @@ variables:
|
||||
# Test stage
|
||||
test:
|
||||
stage: test
|
||||
image: python:3.11-slim
|
||||
before_script:
|
||||
- apt-get update && apt-get install -y gcc postgresql-client
|
||||
- pip install -r requirements.txt
|
||||
- pip install pytest pytest-asyncio httpx
|
||||
image: registry.web.boeing.com/enterprise-sw-verticals/bsf-services/bsf-ss-ui/ubi9minimal-jdk22-build-container:cov-node18-jdk22-1.2.0-amd64
|
||||
script:
|
||||
- echo "Running tests..."
|
||||
- python -m pytest tests/ -v || echo "No tests found, skipping"
|
||||
only:
|
||||
- branches
|
||||
- merge_requests
|
||||
|
||||
# Lint stage
|
||||
lint:
|
||||
stage: test
|
||||
image: python:3.11-slim
|
||||
before_script:
|
||||
- pip install flake8 black
|
||||
script:
|
||||
- echo "Running linters..."
|
||||
- flake8 app/ --max-line-length=120 --ignore=E203,W503 || true
|
||||
- black --check app/ || true
|
||||
only:
|
||||
- branches
|
||||
- merge_requests
|
||||
allow_failure: true
|
||||
|
||||
# Build Docker image
|
||||
build:
|
||||
stage: build
|
||||
image: docker:24
|
||||
services:
|
||||
- docker:24-dind
|
||||
before_script:
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
script:
|
||||
- echo "Building Docker image..."
|
||||
- docker build -t $IMAGE_TAG -t $LATEST_TAG .
|
||||
- docker push $IMAGE_TAG
|
||||
- docker push $LATEST_TAG
|
||||
only:
|
||||
- main
|
||||
- master
|
||||
- develop
|
||||
- tags
|
||||
|
||||
# Deploy to development
|
||||
deploy:dev:
|
||||
stage: deploy
|
||||
image: alpine/helm:latest
|
||||
before_script:
|
||||
- apk add --no-cache curl
|
||||
- curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
|
||||
- chmod +x kubectl
|
||||
- mv kubectl /usr/local/bin/
|
||||
- mkdir -p ~/.kube
|
||||
- echo "$KUBE_CONFIG_DEV" | base64 -d > ~/.kube/config
|
||||
script:
|
||||
- echo "Deploying to development environment..."
|
||||
- |
|
||||
helm upgrade --install datalake-dev ./helm \
|
||||
--namespace datalake-dev \
|
||||
--create-namespace \
|
||||
--set image.repository=$CI_REGISTRY_IMAGE \
|
||||
--set image.tag=$CI_COMMIT_SHORT_SHA \
|
||||
--set ingress.enabled=true \
|
||||
--set ingress.hosts[0].host=datalake-dev.example.com \
|
||||
--set ingress.hosts[0].paths[0].path=/ \
|
||||
--set ingress.hosts[0].paths[0].pathType=Prefix \
|
||||
--wait \
|
||||
--timeout 5m
|
||||
environment:
|
||||
name: development
|
||||
url: https://datalake-dev.example.com
|
||||
only:
|
||||
- develop
|
||||
when: manual
|
||||
|
||||
# Deploy to staging
|
||||
deploy:staging:
|
||||
stage: deploy
|
||||
image: alpine/helm:latest
|
||||
before_script:
|
||||
- apk add --no-cache curl
|
||||
- curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
|
||||
- chmod +x kubectl
|
||||
- mv kubectl /usr/local/bin/
|
||||
- mkdir -p ~/.kube
|
||||
- echo "$KUBE_CONFIG_STAGING" | base64 -d > ~/.kube/config
|
||||
script:
|
||||
- echo "Deploying to staging environment..."
|
||||
- |
|
||||
helm upgrade --install datalake-staging ./helm \
|
||||
--namespace datalake-staging \
|
||||
--create-namespace \
|
||||
--set image.repository=$CI_REGISTRY_IMAGE \
|
||||
--set image.tag=$CI_COMMIT_SHORT_SHA \
|
||||
--set ingress.enabled=true \
|
||||
--set ingress.hosts[0].host=datalake-staging.example.com \
|
||||
--set ingress.hosts[0].paths[0].path=/ \
|
||||
--set ingress.hosts[0].paths[0].pathType=Prefix \
|
||||
--set resources.requests.cpu=1000m \
|
||||
--set resources.requests.memory=1Gi \
|
||||
--wait \
|
||||
--timeout 5m
|
||||
environment:
|
||||
name: staging
|
||||
url: https://datalake-staging.example.com
|
||||
only:
|
||||
- main
|
||||
- master
|
||||
when: manual
|
||||
|
||||
# Deploy to production
|
||||
deploy:prod:
|
||||
stage: deploy
|
||||
image: alpine/helm:latest
|
||||
before_script:
|
||||
- apk add --no-cache curl
|
||||
- curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
|
||||
- chmod +x kubectl
|
||||
- mv kubectl /usr/local/bin/
|
||||
- mkdir -p ~/.kube
|
||||
- echo "$KUBE_CONFIG_PROD" | base64 -d > ~/.kube/config
|
||||
script:
|
||||
- echo "Deploying to production environment..."
|
||||
- |
|
||||
helm upgrade --install datalake ./helm \
|
||||
--namespace datalake-prod \
|
||||
--create-namespace \
|
||||
--set image.repository=$CI_REGISTRY_IMAGE \
|
||||
--set image.tag=$CI_COMMIT_SHORT_SHA \
|
||||
--set replicaCount=3 \
|
||||
--set ingress.enabled=true \
|
||||
--set ingress.hosts[0].host=datalake.example.com \
|
||||
--set ingress.hosts[0].paths[0].path=/ \
|
||||
--set ingress.hosts[0].paths[0].pathType=Prefix \
|
||||
--set resources.requests.cpu=2000m \
|
||||
--set resources.requests.memory=2Gi \
|
||||
--set autoscaling.enabled=true \
|
||||
--set autoscaling.minReplicas=3 \
|
||||
--set autoscaling.maxReplicas=10 \
|
||||
--wait \
|
||||
--timeout 10m
|
||||
environment:
|
||||
name: production
|
||||
url: https://datalake.example.com
|
||||
only:
|
||||
- tags
|
||||
when: manual
|
||||
- cd frontend
|
||||
- curl -s -u $ARTIFACTORY_USERNAME:$ARTIFACTORY_API_TOKEN -k https://sres.web.boeing.com/artifactory/api/npm/auth > $HOME/.npmrc
|
||||
- npm config set registry https://sres.web.boeing.com/artifactory/api/npm/npm-releases
|
||||
- npm config set strict-ssl false
|
||||
- npm config fix
|
||||
- npm install
|
||||
164
.gitlab-ci.yml.old
Normal file
164
.gitlab-ci.yml.old
Normal file
@@ -0,0 +1,164 @@
|
||||
stages:
|
||||
- test
|
||||
- build
|
||||
- deploy
|
||||
|
||||
variables:
|
||||
DOCKER_DRIVER: overlay2
|
||||
DOCKER_TLS_CERTDIR: "/certs"
|
||||
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
|
||||
LATEST_TAG: $CI_REGISTRY_IMAGE:latest
|
||||
|
||||
# Test stage
|
||||
test:
|
||||
stage: test
|
||||
image: python:3.11-slim
|
||||
before_script:
|
||||
- apt-get update && apt-get install -y gcc postgresql-client
|
||||
- pip install -r requirements.txt
|
||||
- pip install pytest pytest-asyncio httpx
|
||||
script:
|
||||
- echo "Running tests..."
|
||||
- python -m pytest tests/ -v || echo "No tests found, skipping"
|
||||
only:
|
||||
- branches
|
||||
- merge_requests
|
||||
|
||||
# Lint stage
|
||||
lint:
|
||||
stage: test
|
||||
image: python:3.11-slim
|
||||
before_script:
|
||||
- pip install flake8 black
|
||||
script:
|
||||
- echo "Running linters..."
|
||||
- flake8 app/ --max-line-length=120 --ignore=E203,W503 || true
|
||||
- black --check app/ || true
|
||||
only:
|
||||
- branches
|
||||
- merge_requests
|
||||
allow_failure: true
|
||||
|
||||
# Build Docker image
|
||||
build:
|
||||
stage: build
|
||||
image: docker:24
|
||||
services:
|
||||
- docker:24-dind
|
||||
before_script:
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
script:
|
||||
- echo "Building Docker image..."
|
||||
- docker build -t $IMAGE_TAG -t $LATEST_TAG .
|
||||
- docker push $IMAGE_TAG
|
||||
- docker push $LATEST_TAG
|
||||
only:
|
||||
- main
|
||||
- master
|
||||
- develop
|
||||
- tags
|
||||
|
||||
# Deploy to development
|
||||
deploy:dev:
|
||||
stage: deploy
|
||||
image: alpine/helm:latest
|
||||
before_script:
|
||||
- apk add --no-cache curl
|
||||
- curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
|
||||
- chmod +x kubectl
|
||||
- mv kubectl /usr/local/bin/
|
||||
- mkdir -p ~/.kube
|
||||
- echo "$KUBE_CONFIG_DEV" | base64 -d > ~/.kube/config
|
||||
script:
|
||||
- echo "Deploying to development environment..."
|
||||
- |
|
||||
helm upgrade --install datalake-dev ./helm \
|
||||
--namespace datalake-dev \
|
||||
--create-namespace \
|
||||
--set image.repository=$CI_REGISTRY_IMAGE \
|
||||
--set image.tag=$CI_COMMIT_SHORT_SHA \
|
||||
--set ingress.enabled=true \
|
||||
--set ingress.hosts[0].host=datalake-dev.example.com \
|
||||
--set ingress.hosts[0].paths[0].path=/ \
|
||||
--set ingress.hosts[0].paths[0].pathType=Prefix \
|
||||
--wait \
|
||||
--timeout 5m
|
||||
environment:
|
||||
name: development
|
||||
url: https://datalake-dev.example.com
|
||||
only:
|
||||
- develop
|
||||
when: manual
|
||||
|
||||
# Deploy to staging
|
||||
deploy:staging:
|
||||
stage: deploy
|
||||
image: alpine/helm:latest
|
||||
before_script:
|
||||
- apk add --no-cache curl
|
||||
- curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
|
||||
- chmod +x kubectl
|
||||
- mv kubectl /usr/local/bin/
|
||||
- mkdir -p ~/.kube
|
||||
- echo "$KUBE_CONFIG_STAGING" | base64 -d > ~/.kube/config
|
||||
script:
|
||||
- echo "Deploying to staging environment..."
|
||||
- |
|
||||
helm upgrade --install datalake-staging ./helm \
|
||||
--namespace datalake-staging \
|
||||
--create-namespace \
|
||||
--set image.repository=$CI_REGISTRY_IMAGE \
|
||||
--set image.tag=$CI_COMMIT_SHORT_SHA \
|
||||
--set ingress.enabled=true \
|
||||
--set ingress.hosts[0].host=datalake-staging.example.com \
|
||||
--set ingress.hosts[0].paths[0].path=/ \
|
||||
--set ingress.hosts[0].paths[0].pathType=Prefix \
|
||||
--set resources.requests.cpu=1000m \
|
||||
--set resources.requests.memory=1Gi \
|
||||
--wait \
|
||||
--timeout 5m
|
||||
environment:
|
||||
name: staging
|
||||
url: https://datalake-staging.example.com
|
||||
only:
|
||||
- main
|
||||
- master
|
||||
when: manual
|
||||
|
||||
# Deploy to production
|
||||
deploy:prod:
|
||||
stage: deploy
|
||||
image: alpine/helm:latest
|
||||
before_script:
|
||||
- apk add --no-cache curl
|
||||
- curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
|
||||
- chmod +x kubectl
|
||||
- mv kubectl /usr/local/bin/
|
||||
- mkdir -p ~/.kube
|
||||
- echo "$KUBE_CONFIG_PROD" | base64 -d > ~/.kube/config
|
||||
script:
|
||||
- echo "Deploying to production environment..."
|
||||
- |
|
||||
helm upgrade --install datalake ./helm \
|
||||
--namespace datalake-prod \
|
||||
--create-namespace \
|
||||
--set image.repository=$CI_REGISTRY_IMAGE \
|
||||
--set image.tag=$CI_COMMIT_SHORT_SHA \
|
||||
--set replicaCount=3 \
|
||||
--set ingress.enabled=true \
|
||||
--set ingress.hosts[0].host=datalake.example.com \
|
||||
--set ingress.hosts[0].paths[0].path=/ \
|
||||
--set ingress.hosts[0].paths[0].pathType=Prefix \
|
||||
--set resources.requests.cpu=2000m \
|
||||
--set resources.requests.memory=2Gi \
|
||||
--set autoscaling.enabled=true \
|
||||
--set autoscaling.minReplicas=3 \
|
||||
--set autoscaling.maxReplicas=10 \
|
||||
--wait \
|
||||
--timeout 10m
|
||||
environment:
|
||||
name: production
|
||||
url: https://datalake.example.com
|
||||
only:
|
||||
- tags
|
||||
when: manual
|
||||
9169
frontend/package-lock.json
generated
9169
frontend/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user