Skip to content
Snippets Groups Projects
Commit da182421 authored by Jenkins's avatar Jenkins
Browse files

submodules: update nightly branch

parents edf971b8 880936d2
No related branches found
No related tags found
No related merge requests found
Showing
with 70 additions and 90 deletions
......@@ -41,7 +41,8 @@ def SNAPCRAFT_KEY = '/var/lib/jenkins/.snap/key'
def GIT_USER_EMAIL = 'jenkins@jami.net'
def GIT_USER_NAME = 'jenkins'
def GIT_PUSH_URL = 'ssh://jenkins@review.jami.net:29420/jami-project'
def SSH_CRED_ID = '35cefd32-dd99-41b0-8312-0b386df306ff'
def JENKINS_SSH_KEY = '35cefd32-dd99-41b0-8312-0b386df306ff'
def DL_SSH_KEY = '5825b39b-dfc6-435f-918e-12acc1f56221'
pipeline {
agent {
......@@ -122,7 +123,6 @@ See https://wiki.savoirfairelinux.com/wiki/Jenkins.jami.net#Configuration_client
steps {
sh """git config user.name ${GIT_USER_NAME}
git config user.email ${GIT_USER_EMAIL}
git remote set-url origin ${GIT_PUSH_URL}
"""
}
}
......@@ -135,8 +135,9 @@ See https://wiki.savoirfairelinux.com/wiki/Jenkins.jami.net#Configuration_client
}
steps {
sh "git checkout ${params.CHANNEL} " +
'&& git merge --no-commit FETCH_HEAD'
sh """git checkout ${params.CHANNEL}
git merge --no-commit FETCH_HEAD
"""
}
}
......@@ -152,10 +153,11 @@ See https://wiki.savoirfairelinux.com/wiki/Jenkins.jami.net#Configuration_client
stage('Generate release tarball') {
steps {
sh """#!/usr/bin/env -S bash -l
git commit -am "New release."
sh """\
#!/usr/bin/env -S bash -l
git commit -am 'New release.'
make portable-release-tarball .tarball-version
git tag \$(cat .tarball-version)
git tag \$(cat .tarball-version) -am "Jami \$(cat .tarball-version)"
"""
stash(includes: '*.tar.gz, .tarball-version',
name: 'release-tarball')
......@@ -169,26 +171,21 @@ See https://wiki.savoirfairelinux.com/wiki/Jenkins.jami.net#Configuration_client
}
}
environment {
GIT_SSH_COMMAND = 'ssh -o UserKnownHostsFile=/dev/null ' +
'-o StrictHostKeyChecking=no'
}
steps {
sshagent(credentials: [SSH_CRED_ID]) {
sshagent(credentials: [JENKINS_SSH_KEY, DL_SSH_KEY]) {
echo "Publishing to git repository..."
// Note: Only stable release tags are published.
script {
if (params.CHANNEL == 'stable') {
// Only stables releases get tarballs and a tag.
sh 'git push --tags'
echo "Publishing release tarball..."
sh 'rsync --verbose jami*.tar.gz ' +
"${REMOTE_HOST}:${REMOTE_BASE_DIR}" +
"/release/tarballs/"
} else {
sh 'git push'
}
}
echo "Publishing release tarball to https://dl.jami.net..."
sh 'rsync --verbose jami*.tar.gz ' +
"${REMOTE_HOST}:${REMOTE_BASE_DIR}/release/tarballs/" +
"${params.CHANNEL}/"
}
}
}
......@@ -251,7 +248,7 @@ See https://wiki.savoirfairelinux.com/wiki/Jenkins.jami.net#Configuration_client
}
steps {
sshagent(credentials: [SSH_CRED_ID]) {
sshagent(credentials: [DL_SSH_KEY]) {
script {
TARGETS.each { target ->
try {
......
......@@ -27,21 +27,9 @@ export TARBALLS ?= /var/cache/jami
TARBALL_VERSION := $(shell cat $(CURDIR)/.tarball-version 2> /dev/null)
ifeq ($(TARBALL_VERSION),)
# YYYY-MM-DD
LAST_COMMIT_DATE:=$(shell git log -1 --format=%cd --date=short)
CURRENT_DATE:=$(shell date +"%Y-%m-%d")
# number of commits that day
NUMBER_OF_COMMITS:=$(shell git log --format=%cd --date=short | grep -c $(LAST_COMMIT_DATE))
# YYMMDD
CURRENT_DATE_SHORT:=$(shell echo $(CURRENT_DATE) | sed -s 's/-//g')
# last commit id
LAST_COMMIT_DATE := $(shell git log -1 --format=%cd --date=format:'%Y%m%d.%H%M')
COMMIT_ID := $(shell git rev-parse --short HEAD)
RELEASE_VERSION:=$(CURRENT_DATE_SHORT).$(NUMBER_OF_COMMITS).$(COMMIT_ID)
RELEASE_VERSION := $(LAST_COMMIT_DATE).$(COMMIT_ID)
else
$(warning Using version from the .tarball-version file: $(TARBALL_VERSION))
RELEASE_VERSION := $(TARBALL_VERSION)
......@@ -59,8 +47,8 @@ DEBIAN_DSC_FILENAME:=jami_$(DEBIAN_VERSION).dsc
# Qt versions
QT_MAJOR := 6
QT_MINOR := 2
QT_PATCH := 1
QT_TARBALL_CHECKSUM := e03fffc5c3b5fea09dcc161444df7dfbbe24e8a8ce9377014ec21b66f48d43cd
QT_PATCH := 2
QT_TARBALL_CHECKSUM := 907994f78d42b30bdea95e290e91930c2d9b593f3f8dd994f44157e387feee0f
DEBIAN_QT_VERSION := $(QT_MAJOR).$(QT_MINOR).$(QT_PATCH)-1
DEBIAN_QT_DSC_FILENAME := libqt-jami_$(DEBIAN_QT_VERSION).dsc
QT_JAMI_PREFIX := /usr/lib/libqt-jami
......@@ -108,7 +96,7 @@ has-guix-p:
# /etc/ssl/certs.
guix-share-tarball-arg = $${TARBALLS:+"--share=$$TARBALLS"}
portable-release-tarball: has-guix-p
guix environment --container --network \
guix shell --container --network \
--preserve=TARBALLS $(guix-share-tarball-arg) \
--expose=/usr/bin/env \
--expose=$$SSL_CERT_DIR=/etc/ssl/certs \
......@@ -135,23 +123,23 @@ ifeq ($(TARBALL_VERSION),)
$(RELEASE_TARBALL_FILENAME): tarballs.manifest
# Prepare the sources of the top repository and relevant submodules.
rm -f "$@"
mkdir $(TMPDIR)/ring-project
git archive HEAD | tar xf - -C $(TMPDIR)/ring-project
mkdir $(TMPDIR)/jami-project
git archive HEAD | tar xf - -C $(TMPDIR)/jami-project
for m in daemon lrc client-gnome client-qt; do \
(cd "$$m" && git archive --prefix "$$m/" HEAD \
| tar xf - -C $(TMPDIR)/ring-project); \
| tar xf - -C $(TMPDIR)/jami-project); \
done
# Create the base archive.
tar -cf $(TMPDIR)/ring-project.tar $(TMPDIR)/ring-project \
--transform 's,.*/ring-project,ring-project,' \
tar -cf $(TMPDIR)/jami-project.tar $(TMPDIR)/jami-project \
--transform 's,.*/jami-project,jami-project,' \
$(TAR_REPRODUCIBILITY_OPTIONS)
# Append the cached tarballs listed in the manifest.
tar --append --file $(TMPDIR)/ring-project.tar \
tar --append --file $(TMPDIR)/jami-project.tar \
--files-from $< \
--transform 's,^.*/,ring-project/daemon/contrib/tarballs/,' \
--transform 's,^.*/,jami-project/daemon/contrib/tarballs/,' \
$(TAR_REPRODUCIBILITY_OPTIONS)
gzip --no-name $(TMPDIR)/ring-project.tar
mv $(TMPDIR)/ring-project.tar.gz "$@"
gzip --no-name $(TMPDIR)/jami-project.tar
mv $(TMPDIR)/jami-project.tar.gz "$@"
rm -rf $(TMPDIR)
else
# If TARBALL_VERSION is defined, assume it's already been generated,
......
Makefile
\ No newline at end of file
......@@ -306,11 +306,8 @@ def run_dependencies(args):
print("The win32 version does not install dependencies with this script.\nPlease continue with the --install instruction.")
sys.exit(1)
elif args.distribution == 'guix':
print("Building the environment defined in 'guix/manifest.scm'...")
execute_script(['mkdir -p ~/.config/guix/profiles',
('guix time-machine --channels=guix/channels.scm -- '
'package --manifest=guix/manifest.scm '
'--profile=$HOME/.config/guix/profiles/jami')])
print("Building the profile defined in 'guix/manifest.scm'...")
execute_script(['guix shell --manifest=guix/manifest.scm -- true'])
else:
print("Not yet implemented for current distribution (%s). Please continue with the --install instruction. Note: You may need to install some dependencies manually." %
......@@ -422,10 +419,13 @@ def run_install(args):
if 'TARBALLS' in os.environ:
share_tarballs_args = ['--preserve=TARBALLS',
f'--share={os.environ["TARBALLS"]}']
else:
print('info: consider setting the TARBALLS environment variable '
'to a stable writable location to avoid loosing '
'cached tarballs')
# Note: we must expose /gnu/store because /etc/ssl/certs
# contains certs that are symlinks to store items.
command = ['guix', 'time-machine', '-C', 'guix/channels.scm', '--',
'environment', '--manifest=guix/manifest.scm',
command = ['guix', 'shell', '--manifest=guix/manifest.scm',
'--expose=/gnu/store', '--expose=/etc/ssl/certs',
'--expose=/usr/bin/env',
'--container', '--network'] + share_tarballs_args \
......@@ -727,13 +727,12 @@ def main():
print('FIXME: Qt fails loading QML modules due to '
'https://issues.guix.gnu.org/47655')
# Relaunch this script, this time in a pure Guix environment.
guix_args = ['time-machine', '--channels=guix/channels.scm',
'--', 'environment', '--pure',
guix_args = ['shell', '--pure',
# to allow pulseaudio to connect to an existing server
"-E", "XAUTHORITY", "-E", "XDG_RUNTIME_DIR",
'--manifest=guix/manifest.scm', '--']
args = sys.argv + ['--distribution=guix']
print('Running in a guix environment spawned with: guix {}'
print('Running in a guix shell spawned with: guix {}'
.format(str.join(' ', guix_args + args)))
os.execlp('guix', 'guix', *(guix_args + args))
else:
......
client-android @ b330586f
Subproject commit ff8c807e112eea82b230742ea7b9c2d59608ee95
Subproject commit b330586fc7c2ec3880591664acba8bb12bff3a70
client-gnome @ 468a1a0e
Subproject commit 9a4f8e151587eabb87544bde8f66ef14cdcde625
Subproject commit 468a1a0ebd1d740e94c2d3280b91f0d14ee0662e
client-ios @ 18677eb5
Subproject commit 80bf6f3672f21ac886e8e065da8571661899c15b
Subproject commit 18677eb5bc6aa6b8c31d8b17cbda8df593cc790d
client-qt @ a2a6e761
Subproject commit db0fd5676391e38974502b2cb6c561c19d2622b7
Subproject commit a2a6e761a65fc35eba6f3a86fdfbcf1196ca19be
daemon @ bdc5a12a
Subproject commit 7c73d69c7e016b738f37733680ad60180088fcc6
Subproject commit bdc5a12a07f2ad6234376abc6d921cbd9f41435b
......@@ -91,6 +91,7 @@ RUN dnf install -y \
perl-English \
libxshmfence-devel \
ninja-build \
vulkan-devel \
python2-six \
cmake
......
......@@ -90,6 +90,7 @@ RUN dnf install -y \
perl-generators \
perl-English \
libxshmfence-devel \
vulkan-devel \
ninja-build \
cmake
......
......@@ -79,6 +79,7 @@ RUN dnf install -y \
libxcb* \
libxkb* \
libX11-devel \
vulkan-devel \
libXrender-devel \
xcb-util-* \
xz \
......
......@@ -6,8 +6,8 @@ RUN zypper --non-interactive install -y \
rpmdevtools \
Mesa-dri-devel Mesa-dri \
git \
gcc11 \
gcc11-c++ \
gcc10 \
gcc10-c++ \
rpm-build \
tar \
make \
......@@ -88,11 +88,12 @@ RUN zypper --non-interactive install -y \
xcb-proto-devel \
xcb-* \
xorg-* \
vulkan-devel \
ninja \
wget
RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 50
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 50
RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 50
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 50
# Install CMake 3.19 for Qt 6
ADD scripts/install-cmake.sh /opt/install-cmake.sh
......
......@@ -15,6 +15,10 @@ RUN apt-get update && \
software-properties-common \
wget
# nodejs (more recent version needed for building libqt-jami)
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -
RUN apt install nodejs -y
ADD scripts/prebuild-package-debian.sh /opt/prebuild-package-debian.sh
COPY packaging/rules/debian-qt/control /tmp/builddeps/debian/control
......@@ -30,9 +34,6 @@ RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10
# Install CMake 3.19 for Qt 6
ADD scripts/install-cmake.sh /opt/install-cmake.sh
RUN /opt/install-cmake.sh
# nodejs
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -
RUN apt install nodejs -y
ADD scripts/build-package-debian.sh /opt/build-package-debian.sh
CMD ["/opt/build-package-debian.sh"]
......@@ -8,7 +8,7 @@ This section covers compiling the different components of Ring.
.. toctree::
:maxdepth: 1
ring-project
jami-project
daemon
lrc
gnome_client
......@@ -10,7 +10,7 @@ Jami is released in the form of a tarball. They are hosted here:
- https://dl.jami.net/ring-release/tarballs/
Tarballs are generated from the integration branch of the `ring-project <https://github.com/savoirfairelinux/ring-project>`_ repository with a job on our `Jenkins server <https://test.savoirfairelinux.com/>`_. They include a copy of all contrib libraries configured in ``daemon/contrib/src``. If you are a Savoir-faire Linux employee, you may trigger the job from `this page <https://test.savoirfairelinux.com/job/ring-release/>`_.
Tarballs are generated from the integration branch of the `jami-project <https://github.com/savoirfairelinux/jami-project>`_ repository with a job on our `Jenkins server <https://jenkins.jami.net/>`_. They include a copy of all contrib libraries configured in ``daemon/contrib/src``. If you are a Savoir-faire Linux employee, you may trigger the job from `this page <https://jenkins.jami.net/job/packaging-gnu-linux/>`_.
Naming scheme
-------------
......@@ -19,7 +19,7 @@ Tarballs respect the following naming scheme ``ring_<date>_<number_of_commits>.<
- **date** is the current date, for example 20160422
- **number_of_commits** represents the number of commits that day
- **commit_id** is the commit id of the last ring-project commit
- **commit_id** is the commit id of the last jami-project commit
Packaging
......
(list (channel
(inherit %default-guix-channel)
;; Use the staging branch for now, as it includes more debug
;; symbols and fixes a propagation conflict between
;; gdk-pixbuf+svg and gdk-pixbuf.
(branch "staging")
(commit
"42231bc15df441d6426dec57283aca9ae7a03fcf")))
......@@ -19,7 +19,7 @@
;;;
;;; It can also be invoked directly to spawn a development environment, like so:
;;;
;;; $ guix environment --pure --manifest=guix/manifest.scm
;;; $ guix shell --pure --manifest=guix/manifest.scm
(specifications->manifest
(list
......
lrc @ be9fd24e
Subproject commit e98f59025649778e700b61d7decb87077ef0005a
Subproject commit be9fd24e6f6f5c1449da7b3f5e64916cfdb70e08
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment