Produce RPM packages

Reference from https://github.com/dotnet/core-setup/tree/master/src/pkg/packaging/rpm

The goal is to have parity with Debian,
but does not publish to the feed

When run the script with rhel, it will
produce rpm file in the package step
and publish rpm to the blob storage
This commit is contained in:
William Li 2017-06-11 15:27:48 -07:00 committed by William Lee
parent cda914a365
commit 3419a87d6f
14 changed files with 682 additions and 1 deletions

View file

@ -0,0 +1,27 @@
#
# Copyright (c) .NET Foundation and contributors. All rights reserved.
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
#
# Dockerfile that creates a container suitable to build dotnet-cli
FROM microsoft/dotnet-buildtools-prereqs:rhel-7-rpmpkg-c982313-20174116044113
# Install from sudo main package TODO This package needs to be mirrored
RUN yum install -y https://www.sudo.ws/sudo/dist/packages/RHEL/7/sudo-1.8.20-3.el7.x86_64.rpm \
&& yum clean all
# Setup User to match Host User, and give superuser permissions
ARG USER_ID=0
RUN useradd -m code_executor -u ${USER_ID} -g root
RUN echo 'code_executor ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
# With the User Change, we need to change permssions on these directories
RUN chmod -R a+rwx /usr/local
RUN chmod -R a+rwx /home
RUN chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
# Set user to the one we just created
USER ${USER_ID}
# Set working directory
WORKDIR /opt/code

View file

@ -67,6 +67,9 @@ if [ -z "$DOCKERFILE" ]; then
elif [ "$(cat /etc/*-release | grep -cim1 centos)" -eq 1 ]; then
echo "Detected current OS as CentOS, using 'centos' image"
export DOCKERFILE=scripts/docker/centos
elif [ "$(cat /etc/*-release | grep -cim1 rhel)" -eq 1 ]; then
echo "Detected current OS as rhel, using 'rhel' image"
export DOCKERFILE=scripts/docker/rhel
elif [ "$(cat /etc/*-release | grep -cim1 debian)" -eq 1 ]; then
echo "Detected current OS as Debian, using 'debian' image"
export DOCKERFILE=scripts/docker/debian

View file

@ -0,0 +1,39 @@
#!/usr/bin/env bash
#
# Copyright (c) .NET Foundation and contributors. All rights reserved.
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
#
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
current_userid=$(id -u)
if [ $current_userid -ne 0 ]; then
echo "$(basename "$0") uninstallation script requires superuser privileges to run"
exit 1
fi
host_package_name="dotnet-host"
remove_all(){
yum remove -y $host_package_name
}
is_dotnet_host_installed(){
local out="$(yum list installed | grep $host_package_name)"
[ -z "$out" ]
}
is_dotnet_host_installed
[ "$?" -eq 0 ] && echo "Unable to find dotnet installation to remove." >&2 \
&& exit 0
remove_all
[ "$?" -ne 0 ] && echo "Failed to remove dotnet packages." >&2 && exit 1
is_dotnet_host_installed
[ "$?" -ne 0 ] && \
echo "dotnet package removal succeeded but appear to still be installed. Please file an issue at https://github.com/dotnet/cli" >&2 && \
exit 1
echo "dotnet package removal succeeded." >&2
exit 0