Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  mozconfig.cache   Sprache: unbekannt

 
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

# Setup for build cache

# Thunderbird builds will set prior to including this file
aws_prefix=${aws_prefix:-taskcluster}
gcp_prefix=${gcp_prefix:-sccache}

if test -n "$SCCACHE_DISABLE" -a -n "$USE_SCCACHE"; then
    echo "SetupError: SCCACHE_DISABLE and USE_SCCACHE should not be set at the same time" >&2
    exit 1
fi

# builds where buildprops didn't have the data (eg: taskcluster) and without sccache disabled:
if test -z "$bucket" -a -z "$SCCACHE_DISABLE"; then

    # prevent rerun if az is set, or wget is not available
    if test -z "$availability_zone" -a -x "$(command -v wget)"; then
        if test -n "$TASKCLUSTER_WORKER_LOCATION" -a -x "$(command -v jq)"; then
            cloud=$(echo $TASKCLUSTER_WORKER_LOCATION | jq .cloud | tr -d \")
            case $cloud in
                aws|google)
                    availability_zone=$(echo $TASKCLUSTER_WORKER_LOCATION | jq .availabilityZone | tr -d \")
                    region=$(echo $TASKCLUSTER_WORKER_LOCATION | jq .region | tr -d \")
                    ;;
            esac
        fi
        if test -z "$availability_zone" -o -z "$region"; then
            if test -n "${TASKCLUSTER_WORKER_GROUP}"; then
                # TASKCLUSTER_WORKER_GROUP is just the region now, so
                # stick an extra character on to make the already-convoluted logic
                # here simpler.
                availability_zone="${TASKCLUSTER_WORKER_GROUP}x"
            elif [ -n "${SCCACHE_GCS_KEY_PATH}" ]; then
                # gcp availability_zone is of the form <region>-<letter> where region is e.g. us-west2, and az is us-west2-a
                gcp_zone=$(wget -T 1 -t 1 -q -O - http://169.254.169.254/computeMetadata/v1beta1/instance/zone || true)
                availability_zone=${gcp_zone##*/}
            else
                # timeout after 1 second, and don't retry (failure indicates instance is not in ec2 or network issue)
                # ec2 availability_zone is of the form <region><letter> where region is e.g. us-west-2, and az is us-west-2a
                availability_zone=$(wget -T 1 -t 1 -q -O - http://169.254.169.254/latest/meta-data/placement/availability-zone || true)
            fi
        fi
        if test -z "$availability_zone" -o "$availability_zone" = "not-ec2"; then
            availability_zone=not-ec2
        elif test -n "$cloud"; then
            case $cloud in
            google)
                bucket=${gcp_prefix}-l${MOZ_SCM_LEVEL}-${region}
                # deal with length limit on serviceaccount names (https://bugzilla.mozilla.org/show_bug.cgi?id=1882374#c5)
                serviceaccount=$(echo $bucket | sed s/northamerica/na/)
                ;;
            aws)
                bucket=${aws_prefix}-level-${MOZ_SCM_LEVEL}-sccache-${region}
                ;;
            esac
        elif [ -n "${SCCACHE_GCS_KEY_PATH}" ]; then
            # gcp region is az with last two letters trimmed
            if test -z "$region"; then
                region=${availability_zone::${#availability_zone}-2}
            fi
            bucket=${aws_prefix}-level-${MOZ_SCM_LEVEL}-sccache-${region}
        else
            # ec2 region is az with last letter trimmed
            if test -z "$region"; then
                region=${availability_zone%?}
            fi
            bucket=${aws_prefix}-level-${MOZ_SCM_LEVEL}-sccache-${region}
        fi
    fi
fi

if test -n "$bucket"; then
    if test "$cloud" = "google"; then
        mk_add_options "export SCCACHE_GCS_BUCKET=$bucket"
        mk_add_options "export SCCACHE_GCS_RW_MODE=READ_WRITE"
        mk_add_options "export SCCACHE_GCS_CREDENTIALS_URL=http://taskcluster/auth/v1/gcp/credentials/$SCCACHE_GCS_PROJECT/${serviceaccount}@$SCCACHE_GCS_PROJECT.iam.gserviceaccount.com"
    elif [ -n "${SCCACHE_GCS_KEY_PATH}" ]; then
        mk_add_options "export SCCACHE_GCS_BUCKET=$bucket"
    else
        mk_add_options "export SCCACHE_BUCKET=$bucket"
        # instruct sccache to fetch the credentials from the Auth service's awsS3Credentials endpoint, via the Taskcluster proxy.
        mk_add_options "export AWS_IAM_CREDENTIALS_URL=http://taskcluster/auth/v1/aws/s3/read-write/${bucket}/?format=iam-role-compat"
    fi
    export CCACHE="sccache"
    export SCCACHE_VERBOSE_STATS=1
    # Workaround for https://github.com/mozilla/sccache/issues/459#issuecomment-618756635
    mk_add_options "export SCCACHE_MAX_FRAME_LENGTH=50000000"
    mk_add_options MOZBUILD_MANAGE_SCCACHE_DAEMON=${MOZ_FETCHES_DIR}/sccache/sccache
elif test -n "$USE_SCCACHE"; then
    echo "SetupError: sccache is enabled but there is no shared storage set up for it?" >&2
    exit 1
fi

[ Dauer der Verarbeitung: 0.15 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge