project-config/jenkins/scripts/afs-slug.sh
Gregory Haynes 04ec88d3cb Create jobs for a wheel mirror
In order to speed up tests where we install python packages we want to
create wheels for packages we depend on.

This patch creates four new scripts:

* afs-slug, which generates a string version of the platform architecture,
  derived from the host system's parameters.
* wheel-build, which generates all wheels, from all branches, in `pwd`/wheels
* wheel-copy, which copies this wheels directory into our AFS file structure.
* wheel-index, which rebuilds the index.html file from the directories
  found in the afs directory.

The above scripts are executed in sequence, with afs credentials only loaded
where necessary. Additional timeouts have been provided to prevent things from
locking.

This patch assumes that a mod_rewrite rule will be available on the serving nodes
that unmunges the URL.

Co-Authored-By: Sean Dague <sean@dague.net>
Depends-On: Ie33861dbcb413c34012820fda76f8be94fb1d151
Depends-On: I81c39d420d8ac70def57949ea0d4c323b8797086
Change-Id: I3463fba889239c565c86ffb080adffd7bfdd18f9
2016-02-03 09:34:03 -08:00

46 lines
1.6 KiB
Bash

#!/bin/bash -xe
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
# This script generates a descriptor slug to use with AFS, composed of the
# operating system, its version, and the processor architecture.
# Pull in the os release.
# ID is 'fedora', 'centos', 'ubuntu'
# VERSION_ID is '23', '7', '14.04'
# Nothing else is useful and/or reliable across distros
source /etc/os-release
################################################################################
# Generate an OS Release Name
OS_TYPE=$ID
################################################################################
# Generate a version string.
OS_VERSION=$VERSION_ID
if [ "$OS_TYPE" != "ubuntu" ]; then
OS_VERSION=$(echo $OS_VERSION | cut -d'.' -f1)
fi
################################################################################
# Get the processor architecture.
# x86_64, i386, armv7l, armv6l
OS_ARCH=$(uname -m)
################################################################################
# Build the name
AFS_SLUG="$OS_TYPE-$OS_VERSION-$OS_ARCH"
AFS_SLUG=$(echo "$AFS_SLUG" | tr '[:upper:]' '[:lower:]')
export AFS_SLUG