ci(docker): 使用docker缓存,使用npm mirror

This commit is contained in:
ibuler 2020-07-29 15:52:32 +08:00 committed by 老广
parent 2913699597
commit e064c1cfc4
2 changed files with 51 additions and 21 deletions

View File

@ -1,10 +1,22 @@
FROM node:10 as stage-build
ARG VERSION
ENV VERSION=$VERSION
ARG NPM_REGISTRY="https://registry.npm.taobao.org"
ENV NPM_REGISTY=$NPM_REGISTRY
ARG SASS_BINARY_SITE="https://npm.taobao.org/mirrors/node-sass"
ENV SASS_BINARY_SITE=$SASS_BINARY_SITE
WORKDIR /data
RUN npm config set sass_binary_site=${SASS_BINARY_SITE}
RUN npm config set registry ${NPM_REGISTRY}
RUN yarn config set registry ${NPM_REGISTRY}
COPY package.json yarn.lock /data/
COPY utils /data/utils/
RUN ls && cd utils && bash -xieu build.sh dep
ADD . /data
RUN cd utils && bash -xieu build.sh
RUN cd utils && bash -xieu build.sh build
FROM nginx:alpine
COPY --from=stage-build /data/release/lina /opt/lina

View File

@ -5,34 +5,52 @@ utils_dir=$(pwd)
project_dir=$(dirname "$utils_dir")
release_dir=${project_dir}/release
if [[ $(uname) == 'Darwin' ]];then
if [[ $(uname) == 'Darwin' ]]; then
alias sedi="sed -i ''"
else
alias sedi='sed -i'
fi
function change_version() {
sedi "s@Version <strong>.*</strong>@Version <strong>${VERSION}</strong>@g" "${project_dir}/src/layout/components/Footer/index.vue" || return 2
sedi "s@Version <strong>.*</strong>@Version <strong>${VERSION}</strong>@g" "${project_dir}/src/layout/components/Footer/index.vue" || return 2
}
# 修改版本号文件
if [[ -n ${VERSION-''} ]]; then
change_version || exit 2
fi
function install_deps() {
# 下载依赖模块并构建
cd "${project_dir}" || exit 3
yarn install --verbose || exit 4
npm rebuild node-sass || exit 5
}
# 下载依赖模块并构建
cd "${project_dir}" || exit 3
yarn || exit 4
rm -rf lina dist
yarn build:prod || exit 5
function build() {
cd "${project_dir}" || exit 1
# 修改版本号文件
if [[ -n ${VERSION-''} ]]; then
change_version || exit 2
fi
rm -rf lina dist
yarn build:prod || exit 5
# 打包
rm -rf "${release_dir:?}"/*
mkdir -p "${release_dir}"
to_dir="${release_dir}/lina"
# 打包
rm -rf "${release_dir:?}"/*
mkdir -p "${release_dir}"
to_dir="${release_dir}/lina"
if [[ -d "dist" ]]; then
mv dist "${to_dir}"
elif [[ -d "lina" ]]; then
mv lina "${to_dir}"
fi
}
if [[ -d "dist" ]];then
mv dist "${to_dir}"
elif [[ -d "lina" ]]; then
mv lina "${to_dir}"
fi
case "${1-}" in
dep)
install_deps
;;
build)
build
;;
*)
install_deps
build
;;
esac