Build gitlab-workhorse binary from workhorse directory
This commit is contained in:
parent
684df5604e
commit
0a98dbda3b
8 changed files with 135 additions and 11 deletions
20
debian/clean
vendored
20
debian/clean
vendored
|
@ -10,3 +10,23 @@ debian/upstream-config-file-list.new
|
||||||
|
|
||||||
# We have rails > 6.0.2
|
# We have rails > 6.0.2
|
||||||
config/initializers/active_record_fix_insert_all.rb
|
config/initializers/active_record_fix_insert_all.rb
|
||||||
|
|
||||||
|
# For workhorse
|
||||||
|
## Failing tests that require test data from the Internet:
|
||||||
|
workhorse/main_test.go
|
||||||
|
workhorse/authorization_test.go
|
||||||
|
workhorse/channel_test.go
|
||||||
|
workhorse/gitaly_integration_test.go
|
||||||
|
workhorse/gitaly_test.go
|
||||||
|
workhorse/jobs_test.go
|
||||||
|
workhorse/sendfile_test.go
|
||||||
|
workhorse/upload_test.go
|
||||||
|
workhorse/internal/upload/*_test.go
|
||||||
|
workhorse/internal/objectstore/*_test.go
|
||||||
|
workhorse/internal/redis/*_test.go
|
||||||
|
## Need definitions from excluded test files
|
||||||
|
workhorse/cable_test.go
|
||||||
|
## Need github.com/johannesboyne/gofakes3/backend/s3mem
|
||||||
|
workhorse/internal/objectstore/s3_object_test.go
|
||||||
|
workhorse/internal/objectstore/test/s3_stub.go
|
||||||
|
workhorse/internal/filestore/file_handler_test.go
|
||||||
|
|
61
debian/control
vendored
61
debian/control
vendored
|
@ -7,12 +7,57 @@ Uploaders: Cédric Boutillier <boutil@debian.org>,
|
||||||
Balasankar C <balasankarc@autistici.org>,
|
Balasankar C <balasankarc@autistici.org>,
|
||||||
Sruthi Chandran <srud@debian.org>,
|
Sruthi Chandran <srud@debian.org>,
|
||||||
Utkarsh Gupta <utkarsh@debian.org>
|
Utkarsh Gupta <utkarsh@debian.org>
|
||||||
Build-Depends: debhelper (>= 10~), gem2deb, bc
|
Build-Depends: debhelper (>= 10~),
|
||||||
|
gem2deb,
|
||||||
|
dh-golang,
|
||||||
|
golang-any,
|
||||||
|
bc,
|
||||||
|
golang-github-alecthomas-chroma-dev,
|
||||||
|
golang-github-aws-aws-sdk-go-dev,
|
||||||
|
golang-github-azure-azure-storage-blob-go-dev (>= 0.10~),
|
||||||
|
golang-github-beorn7-perks-dev,
|
||||||
|
golang-github-client9-reopen-dev,
|
||||||
|
golang-github-davecgh-go-spew-dev,
|
||||||
|
golang-github-dgrijalva-jwt-go-dev (>= 3.2.0~),
|
||||||
|
golang-github-disintegration-imaging-dev,
|
||||||
|
golang-github-fzambia-sentinel-dev,
|
||||||
|
golang-github-garyburd-redigo-dev,
|
||||||
|
golang-github-google-uuid-dev,
|
||||||
|
golang-github-gomodule-redigo-dev,
|
||||||
|
golang-github-grpc-ecosystem-go-grpc-prometheus-dev,
|
||||||
|
golang-github-jfbus-httprs-dev,
|
||||||
|
golang-github-jtolds-gls-dev (>= 4.20~),
|
||||||
|
golang-github-jpillora-backoff-dev,
|
||||||
|
golang-github-mitchellh-copystructure-dev,
|
||||||
|
golang-github-mitchellh-reflectwalk-dev,
|
||||||
|
golang-github-pmezard-go-difflib-dev,
|
||||||
|
golang-github-prometheus-client-golang-dev,
|
||||||
|
golang-github-prometheus-client-model-dev,
|
||||||
|
golang-github-prometheus-common-dev,
|
||||||
|
golang-github-ryszard-goskiplist-dev,
|
||||||
|
golang-github-sebest-xff-dev,
|
||||||
|
golang-github-sirupsen-logrus-dev,
|
||||||
|
golang-github-stretchr-testify-dev (>= 1.4~),
|
||||||
|
golang-gitlab-gitlab-org-labkit-dev (>= 1.3.0-4~),
|
||||||
|
golang-gocloud-dev,
|
||||||
|
golang-golang-x-crypto-dev,
|
||||||
|
golang-golang-x-net-dev,
|
||||||
|
golang-golang-x-sys-dev (>= 0.0~git20180510.7dfd129~),
|
||||||
|
golang-google-genproto-dev,
|
||||||
|
golang-goprotobuf-dev (>= 1.4.3~),
|
||||||
|
golang-honnef-go-tools-dev,
|
||||||
|
golang-procfs-dev,
|
||||||
|
golang-protobuf-extensions-dev,
|
||||||
|
golang-toml-dev,
|
||||||
|
golang-websocket-dev,
|
||||||
|
golang-google-grpc-dev (>= 1.22~),
|
||||||
|
libimage-exiftool-perl
|
||||||
Standards-Version: 4.5.1
|
Standards-Version: 4.5.1
|
||||||
Vcs-Git: https://salsa.debian.org/ruby-team/gitlab.git
|
Vcs-Git: https://salsa.debian.org/ruby-team/gitlab.git
|
||||||
Vcs-Browser: https://salsa.debian.org/ruby-team/gitlab
|
Vcs-Browser: https://salsa.debian.org/ruby-team/gitlab
|
||||||
Homepage: https://about.gitlab.com/
|
Homepage: https://about.gitlab.com/
|
||||||
XS-Ruby-Versions: all
|
XS-Ruby-Versions: all
|
||||||
|
XS-Go-Import-Path: gitlab.com/gitlab-org/gitlab-workhorse
|
||||||
|
|
||||||
Package: gitlab
|
Package: gitlab
|
||||||
Section: contrib/net
|
Section: contrib/net
|
||||||
|
@ -462,3 +507,17 @@ Description: git powered software platform to collaborate on code (non-omnibus)
|
||||||
.
|
.
|
||||||
Note: Currently this package is in contrib because it uses yarn to install
|
Note: Currently this package is in contrib because it uses yarn to install
|
||||||
some of its front end dependencies.
|
some of its front end dependencies.
|
||||||
|
|
||||||
|
Package: gitlab-workhorse
|
||||||
|
Architecture: any
|
||||||
|
Depends: ${misc:Depends},
|
||||||
|
${shlibs:Depends}
|
||||||
|
Built-Using: ${misc:Built-Using}
|
||||||
|
Description: unloads Git HTTP traffic from the GitLab Rails app (Unicorn)
|
||||||
|
gitlab-workhorse was designed to unload Git HTTP traffic from the GitLab Rails
|
||||||
|
app (Unicorn) to a separate daemon. It also serves 'git archive' downloads for
|
||||||
|
GitLab. All authentication and authorization logic is still handled by the
|
||||||
|
GitLab Rails app.
|
||||||
|
.
|
||||||
|
Architecture: Git client -> NGINX -> gitlab-workhorse (makes auth request to
|
||||||
|
GitLab Rails app) -> git-upload-pack
|
||||||
|
|
2
debian/gbp.conf
vendored
2
debian/gbp.conf
vendored
|
@ -1,2 +1,2 @@
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
component = [ 'elasticsearch-rails', 'snowplow-javascript-tracker' ]
|
component = [ 'elasticsearch-rails', 'snowplow-javascript-tracker', 'workhorse-vendor' ]
|
||||||
|
|
1
debian/gitlab-workhorse.install
vendored
Normal file
1
debian/gitlab-workhorse.install
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
_build/bin usr
|
27
debian/patches/0800-search-binaries-in-path.patch
vendored
Normal file
27
debian/patches/0800-search-binaries-in-path.patch
vendored
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
Description: Search for gitlab-workhorse binaries also in the environment in PATH variable
|
||||||
|
Author: Nilesh Patra <npatra974@gmail.com>
|
||||||
|
Last-Update: 2021-01-26
|
||||||
|
--- a/workhorse/internal/testhelper/testhelper.go
|
||||||
|
+++ b/workhorse/internal/testhelper/testhelper.go
|
||||||
|
@@ -13,6 +13,7 @@
|
||||||
|
"runtime"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
+ "os/exec"
|
||||||
|
|
||||||
|
"github.com/dgrijalva/jwt-go"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
@@ -80,8 +81,11 @@
|
||||||
|
rootDir := RootDir()
|
||||||
|
|
||||||
|
for _, exe := range workhorseExecutables {
|
||||||
|
- if _, err := os.Stat(path.Join(rootDir, exe)); os.IsNotExist(err) {
|
||||||
|
- return fmt.Errorf("cannot find executable %s. Please run 'make prepare-tests'", exe)
|
||||||
|
+ _, err := exec.LookPath(exe)
|
||||||
|
+ if err != nil {
|
||||||
|
+ if _, rootdirerr := os.Stat(path.Join(rootDir, exe)); os.IsNotExist(rootdirerr) {
|
||||||
|
+ return fmt.Errorf("cannot find executable %s. Please run 'make prepare-tests'", exe)
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
1
debian/patches/series
vendored
1
debian/patches/series
vendored
|
@ -32,3 +32,4 @@
|
||||||
0740-use-packaged-modules.patch
|
0740-use-packaged-modules.patch
|
||||||
0750-fix-relative-paths.patch
|
0750-fix-relative-paths.patch
|
||||||
0770-remove-capybara-screenshot-rspec.patch
|
0770-remove-capybara-screenshot-rspec.patch
|
||||||
|
0800-search-binaries-in-path.patch
|
||||||
|
|
33
debian/rules
vendored
33
debian/rules
vendored
|
@ -3,10 +3,23 @@
|
||||||
include /usr/share/dpkg/pkg-info.mk
|
include /usr/share/dpkg/pkg-info.mk
|
||||||
|
|
||||||
%:
|
%:
|
||||||
dh $@
|
dh $@ --package=gitlab
|
||||||
|
dh $@ --buildsystem=golang --with=golang --builddirectory=_build --package=gitlab-workhorse --sourcedirectory=workhorse
|
||||||
|
|
||||||
|
override_dh_auto_configure:
|
||||||
|
dh_auto_configure -O--package=gitlab
|
||||||
|
dh_auto_configure -O--package=gitlab-workhorse
|
||||||
|
mkdir -p _build/src/gitlab.com/gitlab-org
|
||||||
|
cp -r workhorse _build/src/gitlab.com/gitlab-org/gitlab-workhorse
|
||||||
|
if [ -d workhorse-vendor ]; then mv workhorse-vendor _build/src/gitlab.com/gitlab-org/gitlab-workhorse/vendor; fi
|
||||||
|
|
||||||
|
override_dh_auto_test:
|
||||||
|
dh_auto_test -O--package=gitlab
|
||||||
|
PATH="$(CURDIR)/_build/bin:$$PATH" dh_auto_test -O--package=gitlab-workhorse
|
||||||
|
|
||||||
override_dh_install:
|
override_dh_install:
|
||||||
dh_install -XLICENSE
|
dh_install -XLICENSE -O--package=gitlab
|
||||||
|
dh_installexamples -O--package=gitlab
|
||||||
# Make sure we are installing all required files in debian/install
|
# Make sure we are installing all required files in debian/install
|
||||||
sh debian/upstream-file-count-check.sh
|
sh debian/upstream-file-count-check.sh
|
||||||
sh debian/upstream-config-file-check.sh
|
sh debian/upstream-config-file-check.sh
|
||||||
|
@ -14,15 +27,17 @@ override_dh_install:
|
||||||
find debian/gitlab/usr/share/gitlab/ -name .eslintrc.yml -delete
|
find debian/gitlab/usr/share/gitlab/ -name .eslintrc.yml -delete
|
||||||
mv debian/gitlab/usr/share/gitlab/app/assets/javascripts/locale \
|
mv debian/gitlab/usr/share/gitlab/app/assets/javascripts/locale \
|
||||||
debian/gitlab/usr/share/gitlab/app/assets/javascripts/locale.static
|
debian/gitlab/usr/share/gitlab/app/assets/javascripts/locale.static
|
||||||
mv debian/gitlab/var/lib/gitlab/db/structure.sql debian/gitlab/var/lib/gitlab/db/structure.sql.template
|
if [ -f debian/gitlab/var/lib/gitlab/db/structure.sql ]; then \
|
||||||
|
mv debian/gitlab/var/lib/gitlab/db/structure.sql debian/gitlab/var/lib/gitlab/db/structure.sql.template; fi
|
||||||
sed -i 's/__NEW_VERSION__/${DEB_VERSION}/g' debian/gitlab/usr/lib/gitlab/templates/gitlab-debian.conf.example
|
sed -i 's/__NEW_VERSION__/${DEB_VERSION}/g' debian/gitlab/usr/lib/gitlab/templates/gitlab-debian.conf.example
|
||||||
|
dh_install -XLICENSE -O--package=gitlab-workhorse
|
||||||
|
|
||||||
override_dh_installinit:
|
override_dh_installinit:
|
||||||
dh_installinit --no-start -p gitlab --name=gitlab-sidekiq
|
dh_installinit --no-start -p gitlab --name=gitlab-sidekiq -O--package=gitlab
|
||||||
dh_installinit --no-start -p gitlab --name=gitlab-puma
|
dh_installinit --no-start -p gitlab --name=gitlab-puma -O--package=gitlab
|
||||||
dh_installinit --no-start -p gitlab --name=gitlab-mailroom
|
dh_installinit --no-start -p gitlab --name=gitlab-mailroom -O--package=gitlab
|
||||||
dh_installinit --no-start -p gitlab --name=gitlab-workhorse
|
dh_installinit --no-start -p gitlab --name=gitlab-workhorse -O--package=gitlab
|
||||||
dh_installinit
|
dh_installinit -O--package=gitlab
|
||||||
|
|
||||||
override_dh_systemd_start:
|
override_dh_systemd_start:
|
||||||
dh_systemd_start --no-start
|
dh_systemd_start --no-start -O--package=gitlab
|
||||||
|
|
1
debian/upstream-file-list
vendored
1
debian/upstream-file-list
vendored
|
@ -57,6 +57,7 @@ Pipfile.lock
|
||||||
README.md
|
README.md
|
||||||
Rakefile
|
Rakefile
|
||||||
VERSION
|
VERSION
|
||||||
|
_build
|
||||||
app
|
app
|
||||||
babel.config.js
|
babel.config.js
|
||||||
bin
|
bin
|
||||||
|
|
Loading…
Reference in a new issue