[tbb-commits] [Git][tpo/applications/tor-browser-build][main] Bug 41043: Create script to push build requests to Mullvad build servers

richard (@richard) git at gitlab.torproject.org
Thu Dec 14 16:11:48 UTC 2023



richard pushed to branch main at The Tor Project / Applications / tor-browser-build


Commits:
338d8950 by Richard Pospesel at 2023-12-14T16:11:19+00:00
Bug 41043: Create script to push build requests to Mullvad build servers

- - - - -


4 changed files:

- Makefile
- projects/release/config
- + projects/release/kick_devmole_build
- rbm.local.conf.example


Changes:

=====================================
Makefile
=====================================
@@ -685,6 +685,10 @@ torbrowser-signtag-release: submodule-update
 torbrowser-signtag-alpha: submodule-update
 	$(rbm) build release --step signtag --target alpha --target torbrowser
 
+# requires var/devmole_auth_token to be set in rbm.local.conf
+torbrowser-kick-devmole-build: submodule-update
+	$(rbm) build release --step kick_devmole_build --target torbrowser
+
 # requires tpo_user variable be set in rbm.local.conf
 mullvadbrowser-upload-sha256sums-release: submodule-update
 	$(rbm) build release --step upload_sha256sums --target release --target mullvadbrowser
@@ -699,6 +703,10 @@ mullvadbrowser-signtag-release: submodule-update
 mullvadbrowser-signtag-alpha: submodule-update
 	$(rbm) build release --step signtag --target alpha --target mullvadbrowser
 
+# requires var/devmole_auth_token to be set in rbm.local.conf
+mullvadbrowser-kick-devmole-build: submodule-update
+	$(rbm) build release --step kick_devmole_build --target mullvadbrowser
+
 fetch: submodule-update
 	$(rbm) fetch
 


=====================================
projects/release/config
=====================================
@@ -279,3 +279,8 @@ steps:
         name: mar-tools
         pkg_type: fetch_martools
     compare_mar_signed_unsigned: '[% INCLUDE compare_mar_signed_unsigned %]'
+  kick_devmole_build:
+    build_log: '-'
+    debug: 0
+    input_files: []
+    kick_devmole_build: '[% INCLUDE kick_devmole_build %]'


=====================================
projects/release/kick_devmole_build
=====================================
@@ -0,0 +1,42 @@
+#!/usr/bin/bash
+
+# This script triggers a build of Tor or Mullvad Browser on Mullvad Infrastructure
+# Hashes are saved here: https://cdn.stagemole.eu/hashes/
+# A Mullvad build server auth token (var/devmole_auth_token) is required to build
+# For now you have to be connecting from Sweden (ie via Malmö or Gothenburg exits using MullvadVPN) for your request to succeed
+
+set -e
+
+# get our build tag
+TAG=[% c("var/git_tag_prefix") %]-[% c("var/torbrowser_version") %]-[% c("var/torbrowser_build") %]
+
+# check for tag existence
+if ! git rev-parse ${TAG} > /dev/null 2>&1; then
+    echo "Error: build tag '${TAG}' does not exist"
+    exit 1
+fi
+
+# determine whether alpha or release based on the build tag
+RELEASE=
+if [[ "${TAG}" =~ ^(mb|tbb)-[1-9][0-9]\.[05]a[1-9][0-9]*-build[1-9]$ ]]; then
+    RELEASE="alpha"
+elif [[ "${TAG}" =~ ^(mb|tbb)-[1-9][0-9]\.[05](\.[1-9][0-9]*)?-build[1-9]$ ]]; then
+    RELEASE="release"
+else
+    echo "Error: malformed build tag '${TAG}'"
+    exit 1
+fi
+
+# get auth token for submission to devmole build server
+AUTH_TOKEN=[% c("buildconf/devmole_auth_token") %]
+if [[ "${AUTH_TOKEN}" = "" ]]; then
+    echo "AUTH_TOKEN: ${AUTH_TOKEN}"
+    echo "Error: buildconf/devmole_auth_token missing from rbm.local.conf"
+    exit 1
+fi
+
+# make request
+curl -X POST "https://drone-server.devmole.eu/api/repos/mullvad/browser-build/builds?branch=main&tag=${TAG}&release=${RELEASE}" -H "Authorization: Bearer ${AUTH_TOKEN}" -H "Accept: application/json"
+
+echo
+echo Hashes will appear here: https://cdn.stagemole.eu/hashes/[% c("var/projectname") %]/[% c("var/torbrowser_version") %]-[% c("var/torbrowser_build") %]


=====================================
rbm.local.conf.example
=====================================
@@ -42,6 +42,11 @@ buildconf:
   ### signing the tag.
   #git_signtag_opt: '-u keyid'
 
+  ### The buildconf/devmole_auth_token option is used for starting remote builds on
+  ### Mullvad's devmole server using the kick_devmole_build step in the release
+  ### project. Such a token can be acquired from the Mullvad sysadmins.
+  #devmole_auth_token: abcdefghijklmnopqrstuvwxyz012345
+
 var:
   local_conf: 1
 



View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/338d895002c0bf7ce07ca5fdf3303b65785fae78

-- 
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/338d895002c0bf7ce07ca5fdf3303b65785fae78
You're receiving this email because of your account on gitlab.torproject.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tbb-commits/attachments/20231214/d1d90618/attachment-0001.htm>


More information about the tbb-commits mailing list