Skip to content
This repository was archived by the owner on Nov 30, 2023. It is now read-only.

Commit 89a70b9

Browse files
authored
Implement fallback logic, test git-lfs 2.13.3 due to bad 3.0.0 release
1 parent 504a29d commit 89a70b9

File tree

2 files changed

+34
-21
lines changed

2 files changed

+34
-21
lines changed

script-library/git-lfs-debian.sh

+33-20
Original file line numberDiff line numberDiff line change
@@ -125,23 +125,7 @@ check_packages() {
125125
fi
126126
}
127127

128-
export DEBIAN_FRONTEND=noninteractive
129-
130-
# Install git, curl, gpg, and debian-archive-keyring if missing
131-
. /etc/os-release
132-
check_packages curl ca-certificates gnupg2 apt-transport-https
133-
if ! type git > /dev/null 2>&1; then
134-
apt_get_update_if_needed
135-
apt-get -y install --no-install-recommends git
136-
fi
137-
if [ "${ID}" = "debian" ]; then
138-
check_packages debian-archive-keyring
139-
fi
140-
141-
# Install Git LFS
142-
echo "Installing Git LFS..."
143-
architecture="$(dpkg --print-architecture)"
144-
if [[ "${GIT_LFS_ARCHIVE_ARCHITECTURES}" = *"${architecture}"* ]] && [[ "${GIT_LFS_ARCHIVE_VERSION_CODENAMES}" = *"${VERSION_CODENAME}"* ]]; then
128+
install_using_apt() {
145129
# Soft version matching
146130
if [ "${GIT_LFS_VERSION}" != "latest" ] && [ "${GIT_LFS_VERSION}" != "lts" ] && [ "${GIT_LFS_VERSION}" != "stable" ]; then
147131
find_version_from_git_tags GIT_LFS_VERSION "https://github.com/git-lfs/git-lfs"
@@ -153,10 +137,12 @@ if [[ "${GIT_LFS_ARCHIVE_ARCHITECTURES}" = *"${architecture}"* ]] && [[ "${GIT_
153137
get_common_setting GIT_LFS_ARCHIVE_GPG_KEY_URI
154138
curl -sSL "${GIT_LFS_ARCHIVE_GPG_KEY_URI}" | gpg --dearmor > /usr/share/keyrings/gitlfs-archive-keyring.gpg
155139
echo -e "deb [arch=${architecture} signed-by=/usr/share/keyrings/gitlfs-archive-keyring.gpg] https://packagecloud.io/github/git-lfs/${ID} ${VERSION_CODENAME} main\ndeb-src [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/gitlfs-archive-keyring.gpg] https://packagecloud.io/github/git-lfs/${ID} ${VERSION_CODENAME} main" > /etc/apt/sources.list.d/git-lfs.list
156-
apt-get install -yq git-lfs${version_suffix}
140+
apt-get install -yq git-lfs${version_suffix} || return 1
157141
git lfs install --skip-repo
158-
else
159-
echo "No apt package for ${VERSION_CODENAME} ${architecture}. Installing manually."
142+
}
143+
144+
install_using_github() {
145+
echo "(*) No apt package for ${VERSION_CODENAME} ${architecture}. Installing manually."
160146
mkdir -p /tmp/git-lfs
161147
cd /tmp/git-lfs
162148
find_version_from_git_tags GIT_LFS_VERSION "https://github.com/git-lfs/git-lfs"
@@ -171,6 +157,33 @@ else
171157
tar xf "${git_lfs_filename}" -C .
172158
./install.sh
173159
rm -rf /tmp/git-lfs /tmp/tmp-gnupg
160+
}
161+
162+
export DEBIAN_FRONTEND=noninteractive
163+
164+
# Install git, curl, gpg, dirmngr and debian-archive-keyring if missing
165+
. /etc/os-release
166+
check_packages curl ca-certificates gnupg2 apt-transport-https dirmngr
167+
if ! type git > /dev/null 2>&1; then
168+
apt_get_update_if_needed
169+
apt-get -y install --no-install-recommends git
170+
fi
171+
if [ "${ID}" = "debian" ]; then
172+
check_packages debian-archive-keyring
173+
fi
174+
175+
# Install Git LFS
176+
echo "Installing Git LFS..."
177+
architecture="$(dpkg --print-architecture)"
178+
if [[ "${GIT_LFS_ARCHIVE_ARCHITECTURES}" = *"${architecture}"* ]] && [[ "${GIT_LFS_ARCHIVE_VERSION_CODENAMES}" = *"${VERSION_CODENAME}"* ]]; then
179+
install_using_apt || use_github="true"
180+
else
181+
use_github="true"
182+
fi
183+
184+
# If no archive exists or apt install fails, try direct from github
185+
if [ "${use_github}" = "true" ]; then
186+
install_using_github
174187
fi
175188

176189
echo "Done!"

script-library/test/regression/run-scripts.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ if [ "${DISTRO}" = "debian" ]; then
7474
runScript azcli
7575
runScript fish "false ${USERNAME}"
7676
runScript git-from-src "latest true"
77-
runScript git-lfs
77+
runScript git-lfs "" "2.13.3"
7878
runScript github
7979
runScript go "1.14 /opt/go /go ${USERNAME} false"
8080
runScript gradle "4.4 /usr/local/sdkman1 ${USERNAME} false"

0 commit comments

Comments
 (0)