зеркало из https://github.com/mozilla/gecko-dev.git
67 строки
2.2 KiB
Bash
Executable File
67 строки
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -xe
|
|
|
|
# Required env variables
|
|
test $VERSION
|
|
test $BUILD_NUMBER
|
|
test $CANDIDATES_DIR
|
|
|
|
# Optional env variables
|
|
: WORKSPACE ${WORKSPACE:=/home/worker/workspace}
|
|
: ARTIFACTS_DIR ${ARTIFACTS_DIR:=/home/worker/artifacts}
|
|
|
|
|
|
TARGET="firefox-${VERSION}.snap"
|
|
|
|
mkdir -p "$ARTIFACTS_DIR"
|
|
rm -rf "${WORKSPACE}/source" && mkdir -p "${WORKSPACE}/source/opt" "${WORKSPACE}/source/usr/bin"
|
|
|
|
CURL="curl --location --retry 10 --retry-delay 10"
|
|
|
|
# Download and extract en-US linux64 binary
|
|
$CURL -o "${WORKSPACE}/firefox.tar.bz2" \
|
|
"${CANDIDATES_DIR}/${VERSION}-candidates/build${BUILD_NUMBER}/linux-x86_64/en-US/firefox-${VERSION}.tar.bz2"
|
|
|
|
tar -C "${WORKSPACE}/source/opt" -xf "${WORKSPACE}/firefox.tar.bz2"
|
|
mkdir -p "${WORKSPACE}/source/opt/firefox/distribution/extensions"
|
|
cp -v distribution.ini "${WORKSPACE}/source/opt/firefox/distribution/"
|
|
|
|
# Use release-specific list of locales to fetch L10N XPIs
|
|
$CURL -o "${WORKSPACE}/l10n_changesets.txt" "${CANDIDATES_DIR}/${VERSION}-candidates/build${BUILD_NUMBER}/l10n_changesets.txt"
|
|
cat "${WORKSPACE}/l10n_changesets.txt"
|
|
|
|
for locale in $(grep -v ja-JP-mac "${WORKSPACE}/l10n_changesets.txt" | awk '{print $1}'); do
|
|
$CURL -o "${WORKSPACE}/source/opt/firefox/distribution/extensions/langpack-${locale}@firefox.mozilla.org.xpi" \
|
|
"$CANDIDATES_DIR/${VERSION}-candidates/build${BUILD_NUMBER}/linux-x86_64/xpi/${locale}.xpi"
|
|
done
|
|
|
|
# Symlink firefox binary to /usr/bin to make it available in PATH
|
|
ln -s ../../opt/firefox/firefox "${WORKSPACE}/source/usr/bin"
|
|
|
|
# Generate snapcraft manifest
|
|
sed -e "s/@VERSION@/${VERSION}/g" -e "s/@BUILD_NUMBER@/${BUILD_NUMBER}/g" snapcraft.yaml.in > ${WORKSPACE}/snapcraft.yaml
|
|
cd ${WORKSPACE}
|
|
snapcraft
|
|
|
|
mv *.snap "$ARTIFACTS_DIR/$TARGET"
|
|
|
|
cd $ARTIFACTS_DIR
|
|
|
|
# Generate checksums file
|
|
size=$(stat --printf="%s" $ARTIFACTS_DIR/$TARGET)
|
|
sha=$(sha512sum $ARTIFACTS_DIR/$TARGET | awk '{print $1}')
|
|
echo "$sha sha512 $size $TARGET" > $TARGET.checksums
|
|
|
|
echo "Generating signing manifest"
|
|
hash=$(sha512sum $TARGET.checksums | awk '{print $1}')
|
|
|
|
cat << EOF > signing_manifest.json
|
|
[{"file_to_sign": "$TARGET.checksums", "hash": "$hash"}]
|
|
EOF
|
|
|
|
# For posterity
|
|
find . -ls
|
|
cat $TARGET.checksums
|
|
cat signing_manifest.json
|