The basic implementation of Debian repository Build on top of extended GitLab Releases.
What this MR does?
- Extend Releases with Assets: it works similar to GitHub Releases,
- Makes GitLab aware of Assets type,
- Makes GitLab parse Debian packages,
- Makes GitLab expose Runner-compatible API for uploading assets to Releases,
- Makes GitLab expose Debian-compatible, signed repository,
- Makes Release Assets support Object Storage, that is used by Artifacts Storage,
- Debian repository is signed by current-user gpg-key,
In order to upload file to release, execute:
curl -F file=@libmali-rk-dev_1.5-4_armhf.deb -F private_token=my-token/or-runner-token http://localhost:3000/api/v4/projects/1/repository/tags/v1.1.0/release/asset
echo deb http://192.168.88.232:3000/gitlab-org/gitlab-test/packages/deb / > /etc/apt/sources.list.d/gitlab.list
- Build Debian package,
- Upload to GitLab using Release Asset API.
Makes Debian be aware of packages, and makes them installable, by version and architecture.
I do know Debian package format, so it was easy to do for me. This can easily be transformed into Maven/Gem/Pypi/etc.
It is proof of concept. I spend 3 hours on it :)