Skip to content
Snippets Groups Projects
Commit 0d56c7dc authored by lucas.landrecy's avatar lucas.landrecy
Browse files

Update .gitlab-ci.yml file

parent 2612adaf
No related branches found
No related tags found
No related merge requests found
Pipeline #40546 failed
stages:
- build
- deploy
variables:
DOCKER_IMAGE: $DOCKER_USERNAME/neo4j-populator
KUBE_NAMESPACE: $KUBE_NAMESPACE
.default-docker:
image: docker:24.0
services:
- docker:24.0-dind
before_script:
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
build_and_push:
stage: build
extends: .default-docker
script:
- docker build -t $DOCKER_IMAGE:latest .
- docker push $DOCKER_IMAGE:latest
setup_kubeconfig:
stage: deploy
image: bitnami/kubectl:latest
script:
- mkdir -p ~/.kube
- echo "$KUBECONFIG_CONTENT" > ~/.kube/config
- chmod 600 ~/.kube/config
artifacts:
paths:
- ~/.kube/config
deploy_to_kubernetes:
stage: deploy
image: bitnami/kubectl:latest
dependencies:
- setup_kubeconfig
script:
- kubectl -n "$KUBE_NAMESPACE" delete -f ./deployment-neo4j.yml --ignore-not-found
- kubectl -n "$KUBE_NAMESPACE" delete -f ./neo4j-service.yml --ignore-not-found
- kubectl -n "$KUBE_NAMESPACE" delete -f ./job-db-populator.yml --ignore-not-found
- kubectl -n "$KUBE_NAMESPACE" apply -f ./deployment-neo4j.yml
- kubectl -n "$KUBE_NAMESPACE" apply -f ./neo4j-service.yml
- kubectl -n "$KUBE_NAMESPACE" apply -f ./job-db-populator.yml
name: CI/CD - Build & Deploy
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build-and-deploy:
runs-on: ubuntu-latest
env:
DOCKER_IMAGE: ${{ secrets.DOCKER_USERNAME }}/neo4j-populator
KUBE_NAMESPACE: ${{ secrets.KUBE_NAMESPACE }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: true
tags: |
${{ env.DOCKER_IMAGE }}:latest
${{ env.DOCKER_IMAGE }}:${{ github.sha }}
- name: Set up Kubeconfig
run: |
mkdir -p .kube
echo "${{ secrets.KUBECONFIG }}" > .kube/config.yml
- name: Delete old Kubernetes resources
run: |
kubectl --kubeconfig=.kube/config.yml -n $KUBE_NAMESPACE delete -f ./deployment-neo4j.yml --ignore-not-found
kubectl --kubeconfig=.kube/config.yml -n $KUBE_NAMESPACE delete -f ./neo4j-service.yml --ignore-not-found
kubectl --kubeconfig=.kube/config.yml -n $KUBE_NAMESPACE delete -f ./job-db-populator.yml --ignore-not-found
- name: Apply new Kubernetes configuration
run: |
kubectl --kubeconfig=.kube/config.yml -n $KUBE_NAMESPACE apply -f ./deployment-neo4j.yml
kubectl --kubeconfig=.kube/config.yml -n $KUBE_NAMESPACE apply -f ./neo4j-service.yml
kubectl --kubeconfig=.kube/config.yml -n $KUBE_NAMESPACE apply -f ./job-db-populator.yml
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment