Move OSX package task into build script
This is to match how the other binaries are built. Also made some changes to make the Docker containers clean up for when you are running this locally.
This commit is contained in:
parent
406ec0ba71
commit
04adf14146
@ -27,7 +27,6 @@ before_deploy:
|
|||||||
- git config --local user.name "$USER_NAME"
|
- git config --local user.name "$USER_NAME"
|
||||||
- git config --local user.email "$USER_EMAIL"
|
- git config --local user.email "$USER_EMAIL"
|
||||||
- git tag "$VERSION" "$TRAVIS_COMMIT"
|
- git tag "$VERSION" "$TRAVIS_COMMIT"
|
||||||
- if [[ “$TRAVIS_OS_NAME” == “osx” ]]; then yarn task package $VERSION; fi
|
|
||||||
deploy:
|
deploy:
|
||||||
provider: releases
|
provider: releases
|
||||||
file_glob: true
|
file_glob: true
|
||||||
|
@ -21,6 +21,8 @@ const buildServerBinary = register("build:server:binary", async (runner) => {
|
|||||||
logger.info("Building with environment", field("env", {
|
logger.info("Building with environment", field("env", {
|
||||||
NODE_ENV: process.env.NODE_ENV,
|
NODE_ENV: process.env.NODE_ENV,
|
||||||
VERSION: process.env.VERSION,
|
VERSION: process.env.VERSION,
|
||||||
|
OSTYPE: process.env.OSTYPE,
|
||||||
|
TARGET: process.env.TARGET,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
await ensureInstalled();
|
await ensureInstalled();
|
||||||
|
@ -1,32 +1,51 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -euxo pipefail
|
set -euxo pipefail
|
||||||
|
|
||||||
# Variables to be set:
|
# Build using a Docker container using the specified image and version.
|
||||||
# $IMAGE
|
|
||||||
function docker_build() {
|
function docker_build() {
|
||||||
containerID=$(docker create -it -v $(pwd)/.cache:/src/.cache $IMAGE)
|
local image="${1}" ; shift
|
||||||
docker start $containerID
|
local version="${1}" ; shift
|
||||||
docker exec $containerID mkdir -p /src
|
|
||||||
|
|
||||||
function exec() {
|
local containerId
|
||||||
docker exec $containerID bash -c "$@"
|
containerId=$(docker create --network=host --rm -it -v "$(pwd)"/.cache:/src/.cache "${image}")
|
||||||
|
docker start "${containerId}"
|
||||||
|
docker exec "${containerId}" mkdir -p /src
|
||||||
|
|
||||||
|
function docker_exec() {
|
||||||
|
docker exec "${containerId}" bash -c "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
docker cp ./. $containerID:/src
|
docker cp ./. "${containerId}":/src
|
||||||
exec "cd /src && yarn"
|
docker_exec "cd /src && yarn"
|
||||||
exec "cd /src && npm rebuild"
|
docker_exec "cd /src && npm rebuild"
|
||||||
exec "cd /src && NODE_ENV=production VERSION=$VERSION yarn task build:server:binary"
|
docker_exec "cd /src && NODE_ENV=production VERSION=${version} yarn task build:server:binary"
|
||||||
exec "cd /src && yarn task package $VERSION"
|
docker_exec "cd /src && yarn task package ${version}"
|
||||||
docker cp $containerID:/src/release/. ./release/
|
docker cp "${containerId}":/src/release/. ./release/
|
||||||
|
|
||||||
|
docker stop "${containerId}"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
function main() {
|
||||||
NODE_ENV=production yarn task build:server:binary
|
local version=${VERSION:-}
|
||||||
|
local ostype=${OSTYPE:-}
|
||||||
|
|
||||||
|
if [[ -z "${version}" ]] ; then
|
||||||
|
>&2 echo "Must set VERSION environment variable"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${ostype}" == "darwin"* ]]; then
|
||||||
|
NODE_ENV=production VERSION="${version}" yarn task build:server:binary
|
||||||
|
yarn task package "${version}"
|
||||||
else
|
else
|
||||||
|
local image
|
||||||
if [[ "$TARGET" == "alpine" ]]; then
|
if [[ "$TARGET" == "alpine" ]]; then
|
||||||
IMAGE="codercom/nbin-alpine"
|
image="codercom/nbin-alpine"
|
||||||
else
|
else
|
||||||
IMAGE="codercom/nbin-centos"
|
image="codercom/nbin-centos"
|
||||||
fi
|
fi
|
||||||
docker_build
|
docker_build "${image}" "${version}"
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
|
Reference in New Issue
Block a user