We use deploy tokens in
requirements/ci.txt to allow the CI system to
access private apps e.g:
To create a deploy token follow the GitLab Deploy tokens documentation.
Copy the Name to “Username (optional)”.
The Username is the first part of the URL
work-deploy-token in the example above.
For Scopes, I selected
Before using Delete Merged Branches, check the list of merged branches to see if there are any you think you might want.
To create a new repository:
Log into https://gitlab.com/ using our company login details.
Click on New Project.
In the Project path section select the
kbgroup. Select the correct Visibility Level and click Create Project.
You should now be able to clone the repository, add a
README.rstfile and then push.
Go to the project Settings, Repository, and scroll down to Protected branches and unprotect the master branch so developers can push to it.
Go to the project Settings, CI/CD, and scroll down to Runners and in the Specific Runners column enable the company ci runner in the
Runners activated for this projectsection. In the Shared Runners column click on the
Disable shared runnersbutton.
To move a repository from GitHub to GitLab: Migrate from GitHub
To set-up a runner see Continuous Integration.
To set-up GitLab Multi-Runner and Docker, see the following section…
GitLab Multi-Runner and Docker
Create a Docker image, by following the instructions in the
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash sudo apt-get install gitlab-runner
Register the runner using
sudo because you cannot enable the
service unless you are
From Registering Runners
Get a registration token, by browsing to your group and selecting Settings, CI / CD, Runners e.g:
sudo -i gitlab-runner register
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/ci): https://gitlab.com/ Please enter the gitlab-ci token for this runner: eaeae123ababa Please enter the gitlab-ci description for this runner: [master-b]: ci.kbsoftware.co.uk Please enter the gitlab-ci tags for this runner (comma separated): INFO eabd2c42 Registering runner... succeeded Please enter the executor: shell, parallels, docker, docker-ssh, ssh: docker Please enter the Docker image (eg. ruby:2.1): pkimber/gitlab-pytest Runner registered successfully.
Run in debug mode:
gitlab-runner --debug run
From Install GitLab Runner manually, to install the service:
gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
To start the service:
To view logging:
tail -f /var/log/syslog
To set-up Continuous Integration for the project, see Continuous Integration.
To cleanup Docker containers, see Docker.
We are using a single GitLab repository (
package) for all of our
Find the Project ID in GitLab e.g.
Create a personal access token, Edit Profile , Access Tokens, Personal Access Tokens, https://gitlab.com/-/profile/personal_access_tokens
Set the registry and auth token (replacing the Project ID and access token) e.g:
# set the auth token pnpm config set '//gitlab.com/api/v4/projects/29981347/packages/npm/:_authToken' "my-gitlab-auth-token" # set the registry (update the project ID) pnpm config set @kb:registry https://gitlab.com/api/v4/projects/29981347/packages/npm/
I guess the
@kb part of the command is from the URL
I think we can only have one package repository.
npm config list or
Patch, install and publish
Make sure to stop
Make sure to update
package.json with the latest versions
and remove any
We only publish apps to our package repository
(see gitlab_npm_package above).
We do not publish projects.
To release one of our projects, follow the
Release and Deploy notes in the
cd ~/dev/app/app-or-project/front/ # check there are no link dependencies cat package.json | grep file # check there is no uncommitted code git status rm -rf dist/ node_modules/ /tmp/embroider/ pnpm version patch # if releasing a project (for 'ember-cli-new-version') python ../kb.py --version-config pnpm install git add config/environment.js package.json package-lock.json git commit -m "prep for release - ember" pnpm publish
To use the
@kb:registry (see gitlab_npm_package above), I think
the package name needs to be prefixed with