Global Variables are initially defined in the project. Once this project is deployed to the Engine, Global Variables are being deployed too. From then on they are bound to live only on the Engine. So that administrators/Operators can adjust their values using the AdminUI (7.0) ... or Engine-Cockpit (8.0 ...).
However, on 7.0 I'm not aware of any mechanism to enforce a re-deployment of Global Variable values during the deployment. Newly introduced Global Variables will be introduced - but old values newer overwritten.
Nevertheless, in the current LTS 8.0 version, new deployment configuration options make it possible to enforce what you are looking for. Configuration values, such as Global Variables, from the project will be written to the Engine (whether they already existed or not) if the administrator prefers so. See
configuration.overwrite=true @ https://dev.axonivy.com/doc/8.0/engine-guide/administration/deployment.html#deployment-options . One major goal of 8.0 was actually, to make ci-pipelines possible, where the developer is under full control of the runtime environment respectively the app that runs the project.
So, you can either manually configure the Variables in 7.0 using the AdminUI. Or migrate to 8.0 and use the powerful deployment flags and files.