Skip to content
This repository was archived by the owner on Sep 3, 2024. It is now read-only.

Commit da61531

Browse files
using minver to get the semver
1 parent 6402a40 commit da61531

File tree

3 files changed

+45
-34
lines changed

3 files changed

+45
-34
lines changed

.dockerignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ docker-compose*
77
.vscode/**
88
.idea/**
99
build/**
10-
dist/**
10+
dist/**
11+
build.sh

Dockerfile

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
1+
FROM microsoft/dotnet:2.1.500-sdk-alpine3.7 as version
2+
3+
WORKDIR /src
4+
5+
COPY .git ./
6+
7+
RUN apk add libcurl && \
8+
dotnet tool install -g minver-cli --version 1.0.0-alpha.15 && \
9+
/root/.dotnet/tools/minver > .version
10+
111
FROM node:10.12.0-alpine AS build
212
ARG MYGET_API_KEY
3-
ARG VERSION
413

514
WORKDIR /app
615

@@ -18,9 +27,11 @@ RUN echo "https://www.myget.org/F/sqlstreamstore/npm/:_authToken=${MYGET_API_KEY
1827
echo "@sql-stream-store:registry=https://www.myget.org/F/sqlstreamstore/npm/" >> .npmrc
1928

2029
RUN test -z "$MYGET_API_KEY" || \
21-
yarn publish --new-version $VERSION && \
30+
yarn publish --new-version $(cat .version) && \
2231
echo "No API key found, skipping publishing..."
2332

33+
COPY --from=version /src/.version /app/build
34+
2435
FROM nginx:1.15.5-alpine AS runtime
2536

2637
COPY ./nginx/nginx.conf /etc/nginx/nginx.conf
@@ -31,4 +42,4 @@ COPY --from=build /app/build/ /var/www/
3142

3243
EXPOSE 80
3344

34-
ENTRYPOINT ["nginx", "-g", "daemon off;"]
45+
ENTRYPOINT ["nginx", "-g", "daemon off;"]

build.sh

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,40 @@
11
#!/usr/bin/env bash
22

3+
LOCAL_IMAGE="sql-stream-store-browser"
4+
LOCAL="${LOCAL_IMAGE}:latest"
5+
6+
REMOTE_IMAGE="sql-stream-store/browser"
7+
8+
docker build \
9+
--build-arg MYGET_API_KEY=$MYGET_API_KEY \
10+
--tag ${LOCAL} \
11+
.
12+
13+
VERSION=$(docker run --entrypoint=cat ${LOCAL} /var/www/.version)
14+
315
SEMVER_REGEX="^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(\\-[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"
416

517
[[ $VERSION =~ $SEMVER_REGEX ]]
618

7-
IMAGE="sql-stream-store-browser"
8-
MAJOR="${IMAGE}.${BASH_REMATCH[1]}"
9-
MAJOR_MINOR="${IMAGE}.${BASH_REMATCH[1]}.${BASH_REMATCH[2]}"
10-
MAJOR_MINOR_PATCH="${IMAGE}.${BASH_REMATCH[1]}.${BASH_REMATCH[2]}.${BASH_REMATCH[3]}"
11-
MAJOR_MINOR_PATCH_PRE="${IMAGE}.${BASH_REMATCH[1]}.${BASH_REMATCH[2]}.${BASH_REMATCH[3]}${BASH_REMATCH[4]}"
12-
LATEST="${IMAGE}:latest"
13-
if [[ -z $VERSION ]]
14-
then
15-
echo "Detected no version information, assuming local build."
16-
docker build \
17-
--tag ${LATEST} \
18-
.
19-
20-
elif [[ $TRAVIS_TAG && -z ${BASH_REMATCH[4]} ]]
21-
then
19+
LATEST="${REMOTE_IMAGE}:latest"
20+
MAJOR="${REMOTE_IMAGE}:${BASH_REMATCH[1]}"
21+
MAJOR_MINOR="${REMOTE_IMAGE}:${BASH_REMATCH[1]}.${BASH_REMATCH[2]}"
22+
MAJOR_MINOR_PATCH="${REMOTE_IMAGE}:${BASH_REMATCH[1]}.${BASH_REMATCH[2]}.${BASH_REMATCH[3]}"
23+
MAJOR_MINOR_PATCH_PRE="${REMOTE_IMAGE}:${BASH_REMATCH[1]}.${BASH_REMATCH[2]}.${BASH_REMATCH[3]}${BASH_REMATCH[4]}"
24+
25+
if [[ -n $TRAVIS_TAG && -z ${BASH_REMATCH[4]} ]]; then
2226
echo "Detected a tag with no prerelease."
23-
docker build \
24-
--build-arg VERSION=$VERSION \
25-
--build-arg MYGET_API_KEY=$MYGET_API_KEY \
26-
--tag ${MAJOR} \
27-
--tag ${MAJOR_MINOR} \
28-
--tag ${MAJOR_MINOR_PATCH} \
29-
--tag ${LATEST} \
30-
.
27+
docker tag $LOCAL $LATEST
28+
docker tag $LOCAL $MAJOR_MINOR_PATCH
29+
docker tag $LOCAL $MAJOR_MINOR
30+
if [[ ${BASH_REMATCH[1]} != "0" ]]; then
31+
docker tag $LOCAL $MAJOR
32+
else
33+
echo "Detected unstable version."
34+
fi
3135
else
3236
echo "Detected a prerelease."
33-
docker build \
34-
--build-arg VERSION=$VERSION \
35-
--build-arg MYGET_API_KEY=$MYGET_API_KEY \
36-
--tag ${MAJOR_MINOR_PATCH_PRE} \
37-
--tag ${LATEST} \
38-
.
37+
docker tag $LOCAL $MAJOR_MINOR_PATCH_PRE
3938
fi
4039

41-
docker images --filter=reference="${LATEST}"
40+
docker images --filter=reference="${REMOTE_IMAGE}"

0 commit comments

Comments
 (0)