Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-04-26 18:17:18 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-04-26 18:17:18 +0300
commit34283a71d9ac31eb4da0b59d0b25fc2be014bc9c (patch)
tree4a780bf8d9c57c3b8ce34fc81152d8a87f71d594 /scripts
parent9edf852c3a851d84b85bc94f7a3b41d5ef04dd32 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/frontend/download_fixtures.sh56
-rw-r--r--scripts/gitlab_component_helpers.sh60
-rw-r--r--scripts/packages/helpers.sh59
3 files changed, 118 insertions, 57 deletions
diff --git a/scripts/frontend/download_fixtures.sh b/scripts/frontend/download_fixtures.sh
new file mode 100755
index 00000000000..47a57401bb9
--- /dev/null
+++ b/scripts/frontend/download_fixtures.sh
@@ -0,0 +1,56 @@
+#!/usr/bin/env bash
+
+#
+# Downloads the most recent frontend fixtures for the current commit, going up the commit parent
+# chain up to max-commits commits (defaults to 50 commits).
+#
+
+source scripts/packages/helpers.sh
+
+print_help() {
+ echo "Usage: scripts/frontend/download_fixtures.sh [--branch <branch-name>] [--max-commits <number>]"
+ echo
+ echo "Looks for a frontend fixture package in the package registry for commits on a local branch."
+ echo
+ echo "If --branch isn't specified, the script will use the current branch as a commit reference."
+ echo "If --max-commits isn't specified, the default is 50 commits."
+
+ return
+}
+
+branch="HEAD"
+max_commits_count=50
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ --branch)
+ shift
+ branch="$1"
+ ;;
+ --max-commits)
+ shift
+ max_commits_count="$1"
+ ;;
+ *)
+ print_help
+ exit
+ ;;
+ esac
+ shift
+done
+
+for commit_sha in $(git rev-list ${branch} --max-count="${max_commits_count}"); do
+ API_PACKAGES_BASE_URL=https://gitlab.com/api/v4/projects/278964/packages/generic
+ FIXTURES_PACKAGE="fixtures-${commit_sha}.tar.gz"
+ FIXTURES_PACKAGE_URL="${API_PACKAGES_BASE_URL}/fixtures/${commit_sha}/${FIXTURES_PACKAGE}"
+
+ echo "Looking for frontend fixtures for commit ${commit_sha}..."
+
+ if ! archive_doesnt_exist "${FIXTURES_PACKAGE_URL}" > /dev/null 2>&1; then
+ echo "We have found frontend fixtures at ${FIXTURES_PACKAGE_URL}!"
+
+ read_curl_package "${FIXTURES_PACKAGE_URL}" | extract_package
+
+ break
+ fi
+done
diff --git a/scripts/gitlab_component_helpers.sh b/scripts/gitlab_component_helpers.sh
index 3d5116d6cc2..2e816330eb6 100644
--- a/scripts/gitlab_component_helpers.sh
+++ b/scripts/gitlab_component_helpers.sh
@@ -2,6 +2,9 @@
set -euo pipefail
+# Generic helper functions for archives/packages
+source scripts/packages/helpers.sh
+
export CURL_TOKEN_HEADER="${CURL_TOKEN_HEADER:-"JOB-TOKEN"}"
export GITLAB_COM_CANONICAL_PROJECT_ID="278964" # https://gitlab.com/gitlab-org/gitlab
@@ -54,63 +57,6 @@ export GITLAB_ASSETS_PACKAGE_URL="${API_PACKAGES_BASE_URL}/assets/${NODE_ENV}-${
# Fixtures constants
export FIXTURES_PATH="tmp/tests/frontend/**/*"
-# Generic helper functions
-function archive_doesnt_exist() {
- local package_url="${1}"
-
- status=$(curl -I --silent --retry 3 --output /dev/null -w "%{http_code}" "${package_url}")
-
- if [[ "${status}" = "200" ]]; then
- echoinfo "The archive was found. The server returned status ${status}."
- return 1
- else
- echoinfo "The archive was not found. The server returned status ${status}."
- return 0
- fi
-}
-
-function create_package() {
- local archive_filename="${1}"
- local paths_to_archive="${2}"
- local tar_working_folder="${3:-.}"
-
- echoinfo "Running 'tar -czvf ${archive_filename} -C ${tar_working_folder} ${paths_to_archive}'"
- tar -czf ${archive_filename} -C ${tar_working_folder} ${paths_to_archive}
- du -h ${archive_filename}
-}
-
-function upload_package() {
- local archive_filename="${1}"
- local package_url="${2}"
- local token_header="${CURL_TOKEN_HEADER}"
- local token="${CI_JOB_TOKEN}"
-
- if [[ "${UPLOAD_PACKAGE_FLAG}" = "false" ]]; then
- echoerr "The archive ${archive_filename} isn't supposed to be uploaded for this instance (${CI_SERVER_HOST}) & project (${CI_PROJECT_PATH})!"
- exit 1
- fi
-
- echoinfo "Uploading ${archive_filename} to ${package_url} ..."
- curl --fail --silent --retry 3 --header "${token_header}: ${token}" --upload-file "${archive_filename}" "${package_url}"
-}
-
-function read_curl_package() {
- local package_url="${1}"
-
- echoinfo "Downloading from ${package_url} ..."
-
- curl --fail --silent --retry 3 "${package_url}"
-}
-
-function extract_package() {
- local tar_working_folder="${1:-.}"
- mkdir -p "${tar_working_folder}"
-
- echoinfo "Extracting archive to ${tar_working_folder}"
-
- tar -xz -C ${tar_working_folder} < /dev/stdin
-}
-
# Workhorse functions
function gitlab_workhorse_archive_doesnt_exist() {
archive_doesnt_exist "${GITLAB_WORKHORSE_PACKAGE_URL}"
diff --git a/scripts/packages/helpers.sh b/scripts/packages/helpers.sh
new file mode 100644
index 00000000000..2917338aeb8
--- /dev/null
+++ b/scripts/packages/helpers.sh
@@ -0,0 +1,59 @@
+#!/usr/bin/env bash
+
+source scripts/utils.sh
+
+function archive_doesnt_exist() {
+ local package_url="${1}"
+
+ status=$(curl -I --silent --retry 3 --output /dev/null -w "%{http_code}" "${package_url}")
+
+ if [[ "${status}" = "200" ]]; then
+ echoinfo "The archive was found. The server returned status ${status}."
+ return 1
+ else
+ echoinfo "The archive was not found. The server returned status ${status}."
+ return 0
+ fi
+}
+
+function create_package() {
+ local archive_filename="${1}"
+ local paths_to_archive="${2}"
+ local tar_working_folder="${3:-.}"
+
+ echoinfo "Running 'tar -czvf ${archive_filename} -C ${tar_working_folder} ${paths_to_archive}'"
+ tar -czf ${archive_filename} -C ${tar_working_folder} ${paths_to_archive}
+ du -h ${archive_filename}
+}
+
+function upload_package() {
+ local archive_filename="${1}"
+ local package_url="${2}"
+ local token_header="${CURL_TOKEN_HEADER}"
+ local token="${CI_JOB_TOKEN}"
+
+ if [[ "${UPLOAD_PACKAGE_FLAG}" = "false" ]]; then
+ echoerr "The archive ${archive_filename} isn't supposed to be uploaded for this instance (${CI_SERVER_HOST}) & project (${CI_PROJECT_PATH})!"
+ exit 1
+ fi
+
+ echoinfo "Uploading ${archive_filename} to ${package_url} ..."
+ curl --fail --silent --retry 3 --header "${token_header}: ${token}" --upload-file "${archive_filename}" "${package_url}"
+}
+
+function read_curl_package() {
+ local package_url="${1}"
+
+ echoinfo "Downloading from ${package_url} ..."
+
+ curl --fail --silent --retry 3 "${package_url}"
+}
+
+function extract_package() {
+ local tar_working_folder="${1:-.}"
+ mkdir -p "${tar_working_folder}"
+
+ echoinfo "Extracting archive to ${tar_working_folder}"
+
+ tar -xz -C ${tar_working_folder} < /dev/stdin
+}