GitLab
Deploy Token
We use deploy tokens in requirements/ci.txt
to allow the CI system to
access private apps e.g:
-e git+https://work-deploy-token:abCd1fGhIjKlm45-T3qr@gitlab.com/kb/work.git#egg=kb-work
To create a deploy token follow the GitLab Deploy tokens documentation.
Tip
Copy the Name to “Username (optional)”.
The Username is the first part of the URL
e.g. work-deploy-token
in the example above.
For Scopes, I selected read_repository
.
GitLab Branches
Note
Before using Delete Merged Branches, check the list of merged branches to see if there are any you think you might want.
To delete untracked remotes on your local machine, see Git Branches
We have a script to delete untracked-branches
New Repository
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
kb
group. Select the correct Visibility Level and click Create Project.You should now be able to clone the repository, add a
README.rst
file 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 project
section. In the Shared Runners column click on theDisable shared runners
button.
To move a repository from GitHub to GitLab: Migrate from GitHub
Continuous Integration
Tip
To set-up a runner see Continuous Integration.
Tip
To set-up GitLab Multi-Runner and Docker, see the following section…
GitLab Multi-Runner and Docker
From Install using official GitLab repositories
Install Docker: https://www.pkimber.net/howto/linux/apps/docker/getting-started.html
Create a Docker image, by following the instructions in the README.rst
file
in https://gitlab.com/kb/gitlab-pytest
Install gitlab-runner
:
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt-get install gitlab-runner
Tip
Register the runner using sudo
because you cannot enable the
service unless you are root
.
From Registering Runners
Get a registration token, by browsing to your group and selecting Settings, CI / CD, Runners e.g:
Set-up:
sudo -i
gitlab-runner register
Sample output:
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[0204] 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:
gitlab-runner start
To view logging:
tail -f /var/log/syslog
To set-up Continuous Integration for the project, see Continuous Integration.
Tip
To cleanup Docker containers, see Docker.
npm package
Patch, install and publish
Warning
Make sure to stop ember serve
!
Warning
Make sure to update package.json
with the latest versions
and remove any link
packages.
Tip
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 README.rst
file.
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
pnpm env use --global 18
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
Tip
To use the @kb:registry
(see gitlab_npm_package above), I think
the package name needs to be prefixed with @kb
e.g. "name": "@kb/ember-work"
Personal Access Token
Tip
We are using a single GitLab repository (package
) for all of our
Packages.
Find the Project ID in GitLab:
Find the project.
Click Settings, General
e.g.
Create a personal access token:
Edit Profile , Access Tokens, Personal Access Tokens, https://gitlab.com/-/profile/personal_access_tokens
I set most of the Scopes:
api, read_api, read_user, create_runner, k8s_proxy, read_repository, write_repository, read_registry, write_registry
Tip
I am sure some of the Scopes can be removed…
Then set the registry and auth token for pnpm
(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/
Tip
I guess the @kb
part of the command is from the URL
e.g. https://gitlab.com/kb/msgraph
Tip
I think we can only have one package repository.
To check, npm config list
or cat ~/.npmrc
.