Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.24 KiB
Newer Older
  • Learn to ignore specific revisions
  • #services:
    #  - postgres:13
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
    variables:
    
    Rafael László's avatar
    Rafael László committed
      POSTGRES_DB: kszkepzes
      CONTAINER_IMAGE: 'registry.kszk.bme.hu/kszk/devteam/$CI_PROJECT_NAME:$CI_COMMIT_REF_NAME'
    
    Rafael László's avatar
    Rafael László committed
    
    cache:
    
    Rafael László's avatar
    Rafael László committed
      key: '$CI_JOB_NAME-$CI_COMMIT_REF_SLUG'
    
    Rafael László's avatar
    Rafael László committed
      paths:
        - .cache/pip
    
    Rafael László's avatar
    Rafael László committed
        - env/
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
    
    stages:
    
      - Test and Flake8
    
    Rafael László's avatar
    Rafael László committed
      - Docker Build
    
    Rafael László's avatar
    Rafael László committed
    
    Flake8:
    
      stage: Test and Flake8
    
    Rafael László's avatar
    Rafael László committed
      only:
        - dev
        - master
    
        - tags
    
    Rafael László's avatar
    Rafael László committed
      script:
    
        - python -V
        - python3 -m venv env
        - source env/bin/activate
        - pip install -r requirements/production.txt
    
    Rafael László's avatar
    Rafael László committed
        - flake8 --max-line-length=125 --exclude=src/kszkepzes,migrations,env
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
    
    
    # TODO write tests
    # Test:
    #   stage: Test and Flake8
    #   only:
    #     - dev
    #     - master
    
    #   variables:
    #     DATABASE_URL: 'postgresql://postgres:postgres@postgres:5432/$POSTGRES_DB'
    #     SECRET_KEY: 'secret'
    #     AUTHSCH_KEY: 'secret'
    #     AUTHSCH_SECRET: 'secret'
    #   script:
    #     - python -V
    #     - python3 -m venv env
    #     - source env/bin/activate
    #     - pip install -r requirements/production.txt
    #     - python src/manage.py test
    
    Rafael László's avatar
    Rafael László committed
    
    
    Docker build to KSZK registry:
    
    Rafael László's avatar
    Rafael László committed
      stage: Docker Build
    
    Rafael László's avatar
    Rafael László committed
      only:
        - tags
      image:
        name: gcr.io/kaniko-project/executor:debug
        entrypoint: ['']
      script:
        - echo "{\"auths\":{\"registry.kszk.bme.hu\":{\"username\":\"$REGISTRY_USER\",\"password\":\"$REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
        - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CONTAINER_IMAGE
    
    
    Deploy to Kubernetes:
      stage: deploy
      image: alpine
      tags: [devteam]
      environment:
        name: master
      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/kubectl
        - kubectl version
        - cd k8s
        - sed -i "s|##IMAGETAG##|${CI_COMMIT_REF_NAME}|" deployment.yml
    
    Torma Kristóf's avatar
    Torma Kristóf committed
        # A kovetkezo ket sor egy undorito workaround a mindig valtozo init kontenerek miatt letrejovo es beakado replicasetek miatt. Pls replace, ha van jobb otlet.
    
    Torma Kristóf's avatar
    Torma Kristóf committed
        - kubectl delete deployment apache-static || true
        - kubectl delete deployment kszkepzes-backend || true
    
        - kubectl apply -f deployment.yml
      only:
        - tags