gitgitlabgitlab-cigitlab-ci-runner

How to do a simple pull with gitlab-ci.yml?


What is the correct form to do a git pull in my server project everytime I do a git push to my gitlab repository from my local project?

This is my gitlab-ci.yml:

stages:
  - test
  - deploy

test:
  stage: test
  only:
    - develop
    - production
  script:
    - git checkout develop
    - git pull

step-deploy-prod:
  stage: deploy
  only:
    - production
  script:
    - git checkout production
    - git pull
  environment: production
  when: manual

And this are the messages from the Gitlab CI/CD Jobs:

Running with gitlab-runner 13.9.0-rc2 (69c049fd)
  on docker-auto-scale 72989761
  feature flags: FF_GITLAB_REGISTRY_HELPER_IMAGE:true
Preparing the "docker+machine" executor
00:36
Using Docker executor with image ruby:2.5 ...
Pulling docker image ruby:2.5 ...
Using docker image sha256:ad71c4982eb130f0dabcd6028201d00350863250b5a5cbc991adbf0c4e37b4f2 for ruby:2.5 with digest ruby@sha256:1cb06265c85952ececf5e4990b70abf3146ce798a670c50c1dd3380a6ba470d7 ...
Preparing environment
00:02
Running on runner-72989761-project-25613657-concurrent-0 via runner-72989761-srm-1618105481-ed6a658b...
Getting source from Git repository
00:05
$ eval "$CI_PRE_CLONE_SCRIPT"
Fetching changes with git depth set to 50...
Initialized empty Git repository in /builds/ivanvaleraa/pos_v1/.git/
Created fresh repository.
Checking out eabdc2d3 as develop...
Skipping Git submodules setup
Executing "step_script" stage of the job script
00:02
Using docker image sha256:ad71c4982eb130f0dabcd6028201d00350863250b5a5cbc991adbf0c4e37b4f2 for ruby:2.5 with digest ruby@sha256:1cb06265c85952ececf5e4990b70abf3146ce798a670c50c1dd3380a6ba470d7 ...
$ git checkout develop
Switched to a new branch 'develop'
Branch 'develop' set up to track remote branch 'develop' from 'origin'.
$ git pull
From https://gitlab.com/ivanvaleraa/pos_v1
 * [new branch]      master     -> origin/master
 * [new branch]      production -> origin/production
Already up to date.
Cleaning up file based variables
00:00
Job succeeded

It said "Job succeeded" but my server havent updated.

My server is a Droplet in DigitalOcean: Ubuntu 20.04 (LTS) x64 with LAMP enviroment installed. The project I am trying to pull is in PHP.


Solution

  • The current behavior observed is the expected one, as all the commands being run by gitlab is inside its own environment and not on your servers.

    To achieve the expected behaviour:

    1 is recommended for codebases that are required to be built before deployment. Yet for your simple usecase 2 is sufficient.