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

Commit 9a8f6e3

Browse files
Merge pull request #25 from thefringeninja/applibfwk
Prepare Package for Distribution
2 parents 20b28c2 + 6269748 commit 9a8f6e3

File tree

17 files changed

+259
-129
lines changed

17 files changed

+259
-129
lines changed

.dockerignore

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
node_modules/**
22
npm-debug.log
3+
yarn-error.log
34
Dockerfile*
45
docker-compose*
56
.dockerignore
6-
.git/**
7-
.gitignore
8-
README.md
9-
LICENSE
107
.vscode/**
118
.idea/**
12-
build/**
9+
build/**
10+
dist/**
11+
build.sh

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ node_modules/**
22
build/**
33
.idea/**
44
yarn-error.log
5-
*.tgz
5+
*.tgz
6+
dist/**

.travis.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,12 @@ language: minimal
22
dist: trusty
33
sudo: false
44
services:
5-
- docker
5+
- docker
66
script: "./build.sh"
7+
git:
8+
depth: false
9+
env:
10+
global:
11+
- secure: HbNBtNiGTLcQQa8/ifX5cJJYj+8Kj7kZagO5aBi3MXkArzTb7V6qi33h8o6A6KaKDW9P+Z58AuJ85/+dMJMW0UAEWzNyGCddzXGVhIyqnu3og0WfWNPsUQZ+A7Qdid//tRpOyX+CfZzQNqWezStJPg0y0RaSJt/dCMCIhVq1YbZzjQijGEE3AdpjZJKWsXhaOofYksVRYoemPmnb5Emb0DHCZkQVl1J+00NKPdHOlFK7Jb/VRtJsLhlQ6oB2/xpXBbVHMa6ogG+sAaj/Qa8SyYhWvwUj9HP2mqKL5t85PmF7zBtG/yh85dKiQDKVGZgFEO9ZAh9i7MWMaJxdiPV/LN2+QA9IDtDjmdWJGsH9kSA24QzSxe/mv5B+MsiOU0trsBlJq2AnCProJSbKmeKavhtnuZ8W+KvBH7BI1LNyVBCRCh2YrCk5fbQQ2Te9ZwaBZd0mjNpsxjze1JYMjWXpgm/64zM8Mn0dmoU3WWmL+C8ZXZpi7/sdtroMFbcx5xxnqXojXUa1IHhCsO+hGmgHCOlpevMaOz+Ct4MYb5gmIAaEx3XpjSakmu5vHInvGrxTTAlq3Jf17OC/dWfOvVtRCNBnGWDSfojtZKrU85HzitDUPFVgLkLgt/btFI8O8OHZgJgb4wA/NGtpAdFzTuBN8kQCH0cvwVtXThTatgHqfGc=
12+
- secure: EDzsth0OgLpG72wHRdtxpjImD/OHbe+7rYt9BHHQ9hAIauLJmND1+6uQmumWIxfIn2ulEhBKIp92OsV6XNpjU/WoKbGTnX3uR8ADjnS+/rlZgvGKP4SGdwhdZFwFlUV5BZeGL1bS6avWbMWb81kl0+RUArDPdN8nb5nx7tPLbeZmPF5zKJSRQHUzCN8vyEMpr1pDCNclU+S9awcibKa1EHKNDh5aZe1rpimwWlbx+xd3I1TRE2/n6TZ7GhBP6TTtLZGGsNlOF7rjCX9eRWYG+a4AD1h8htTT0Ag7DF/LCh5RFK+XCTA7MmQnc+CtPf34VUz9ftK+22EONMPv3P7hheZt4jZpc3qQ2SYu4rbI9bmzY9x8VyDtk60BLXoOmM99Q63rnzyRzawqrETGMyEIP1DCu8E6Fw4SVSzDSq+SBlbX7+oN8mj9+jR1d2yOax9QfwAJ+b5z9vSYc7g+rLCQgaoT5dOgNTZ7TvMnpJPB0VkdIWCuI5TfVBYa64PmYR2zZelVN9EWQ/Uqmgw1SR/FmwKwaaxxDFsfwR7vJynooWKyX6BIxrQH86DVCPFdsorT2ytZwPYNWymLiF/uV8bc4Awp0UYY82GKJ18QjWxEiQJf/mgY/OKpqvJ1EDnfXdhDkz+0BEi4hLByaprYy6brpbLo5RrH9DpRVwltK+zatmM=
13+
- secure: dfbEiecPuE4pgqkWzEQQ7m5ZB0MPZ8QCeKKaO2LTqnUIaby9fdsmAcnD3dGNL1F28GVErSB6ySEmyglOdMY5cnvW0FZvKAg4awS7rMcsHMfVX0xgXp9kNzeH1wQBNB6nx4d9fcZUdpjC8V+6QCjNGs/Y/tmdOiwjuNyWR3tQkY4tvs1Qyg884lg3AS3e0qKw9gmX2Oe2Qe44Qkr/yCBwrXcOYTIut9mqF4Nzux+dY9wsbC2L3Qf8AegcjLVPEoT3UYcgtqZfHHFKcnTitDmKRQqzdi1mQW6QXfA8hzMkL5CZIiixvFj8iD4re4r68gcUNCfgP8HhuemvMQ3tmZYUix8TS7mgwZJpvc7GkADKtKvyKMS9zfnlYEOfsVUW8rAEvfUkSpjqaixq3M6Gz/fEuHZu5FW0S9Imcm3YLumLNV+J1gxW4UKkLYgLVFkOizw3CQG7+I90C/LS5zUwTRBGuj1B+Hf4QqmPOj3qtM/eCSbuGbOwEC5YV6s69UVl7nYmphza58Ha5RswsYiDOKiPO2yejMqaiCTS3B3+0F/LgGVvIZP2BVbIrG+6/eKLi/fMjzEEU8jI9Sg60hhaa4O3EtI2JjJN899pyxKQBYYdaNhSBkEDOMB5ydfbWwqr7T88BN/EQWHS7WWf3K+SHCWUiDvlFw2e4JLkWQ4Y2E0rN2k=

Dockerfile

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
1-
FROM node:10.12.0-alpine AS build
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 --no-cache && \
8+
dotnet tool install -g minver-cli --version 1.0.0-beta.1 && \
9+
/root/.dotnet/tools/minver > .version
210

3-
RUN apk add --no-cache git
11+
FROM node:10.12.0-alpine AS build
12+
ARG MYGET_API_KEY
413

514
WORKDIR /app
615

@@ -10,17 +19,28 @@ RUN yarn --frozen-lockfile
1019

1120
COPY . .
1221

13-
RUN yarn build && \
22+
COPY --from=version /src/.version ./
23+
24+
RUN REACT_APP_CLIENT_VERSION=$(cat .version) yarn build && \
25+
yarn build:dist && \
1426
yarn cache clean
1527

28+
RUN echo "https://www.myget.org/F/sqlstreamstore/npm/:_authToken=${MYGET_API_KEY}" > .npmrc && \
29+
echo "@sql-stream-store:registry=https://www.myget.org/F/sqlstreamstore/npm/" >> .npmrc
30+
31+
RUN test -z "$MYGET_API_KEY" || \
32+
yarn publish --new-version $(cat .version) && \
33+
echo "No API key found, skipping publishing..."
34+
1635
FROM nginx:1.15.5-alpine AS runtime
1736

18-
COPY ./nginx.conf /etc/nginx/nginx.conf
37+
COPY ./nginx/nginx.conf /etc/nginx/nginx.conf
1938

20-
COPY ./mime.types /etc/nginx/mime.types
39+
COPY ./nginx/mime.types /etc/nginx/mime.types
2140

2241
COPY --from=build /app/build/ /var/www/
42+
COPY --from=version /src/.version /var/www
2343

2444
EXPOSE 80
2545

26-
ENTRYPOINT ["nginx", "-g", "daemon off;"]
46+
ENTRYPOINT ["nginx", "-g", "daemon off;"]

build.sh

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,45 @@
11
#!/usr/bin/env bash
2-
DOCKERTAG=${TRAVIS_TAG:-latest}
32

4-
docker build --build-arg semver=TRAVIS_TAG --tag sql-stream-store-browser:${DOCKERTAG} .
3+
set -e
54

6-
docker images --filter=reference="sql-stream-store-browser:${DOCKERTAG}"
5+
LOCAL_IMAGE="sql-stream-store-browser"
6+
LOCAL="${LOCAL_IMAGE}:latest"
7+
8+
REMOTE_IMAGE="sqlstreamstore/browser"
9+
10+
docker build \
11+
--build-arg MYGET_API_KEY=$MYGET_API_KEY \
12+
--tag ${LOCAL} \
13+
.
14+
15+
VERSION=$(docker run --entrypoint=cat ${LOCAL} /var/www/.version)
16+
17+
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-]+)*)?$"
18+
19+
[[ $VERSION =~ $SEMVER_REGEX ]]
20+
21+
MAJOR="${REMOTE_IMAGE}:${BASH_REMATCH[1]}"
22+
MAJOR_MINOR="${REMOTE_IMAGE}:${BASH_REMATCH[1]}.${BASH_REMATCH[2]}"
23+
MAJOR_MINOR_PATCH="${REMOTE_IMAGE}:${BASH_REMATCH[1]}.${BASH_REMATCH[2]}.${BASH_REMATCH[3]}"
24+
MAJOR_MINOR_PATCH_PRE="${REMOTE_IMAGE}:${BASH_REMATCH[1]}.${BASH_REMATCH[2]}.${BASH_REMATCH[3]}${BASH_REMATCH[4]}"
25+
26+
if [[ -n $TRAVIS_TAG && -z ${BASH_REMATCH[4]} ]]; then
27+
echo "Detected a tag with no prerelease."
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
35+
else
36+
echo "Detected a prerelease."
37+
docker tag $LOCAL $MAJOR_MINOR_PATCH_PRE
38+
fi
39+
40+
if [[ -n $DOCKER_USER ]]; then
41+
echo "${DOCKER_PASS}" | docker login --username "${DOCKER_USER}" --password-stdin
42+
docker push $REMOTE_IMAGE
43+
fi
44+
45+
docker images --filter=reference="${REMOTE_IMAGE}"
File renamed without changes.
File renamed without changes.

package.json

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
{
2-
"name": "sql-stream-store-browser",
3-
"version": "0.1.0",
2+
"name": "@sqlstreamstore/browser",
43
"description": "Sql Stream Store User Interface",
5-
"repository": "https://github.com/thefringeninja/sql-stream-store-browser.git",
4+
"repository": "https://github.com/SQLStreamStore/sql-stream-store-browser.git",
65
"scripts": {
76
"analyze": "source-map-explorer build/static/js/main.*",
87
"start": "react-scripts-ts start",
98
"build": "prettier --list-different \"src/**/*.js\" \"src/**/*.ts\" \"src/**/*.tsx\" && tslint --project ./ && react-scripts-ts build",
9+
"build:dist": "rm -rf dist && tsc --project tsconfig.publish.json && cp src/index.d.ts ./dist",
1010
"eject": "react-scripts-ts eject",
1111
"format": "prettier --write \"src/**/*.js\" \"src/**/*.ts\" \"src/**/*.tsx\" && tslint --project ./ --fix"
1212
},
13-
"main": "src/index.tsx",
13+
"main": "dist/index.js",
14+
"types": "dist/index.d.ts",
15+
"files": [
16+
"dist",
17+
"README.md",
18+
"src"
19+
],
1420
"private": false,
1521
"devDependencies": {
1622
"@types/array.prototype.flatmap": "^1.2.0",
@@ -27,32 +33,31 @@
2733
"@types/remarkable": "^1.7.1",
2834
"@types/uuid": "^3.4.4",
2935
"babel-plugin-module-resolver": "3.1.1",
30-
"prettier": "1.15.1",
36+
"prettier": "1.15.2",
3137
"react-scripts-ts": "3.1.0",
3238
"source-map-explorer": "1.6.0",
33-
"tslint-config-prettier": "1.15.0",
34-
"tslint-immutable": "4.8.0",
39+
"tslint-config-prettier": "1.17.0",
40+
"tslint-immutable": "5.0.0",
3541
"tslint-react": "3.6.0",
3642
"typescript": "3.1.6",
3743
"typesync": "0.4.0"
3844
},
3945
"dependencies": {
40-
"@material-ui/core": "3.2.1",
46+
"@material-ui/core": "3.6.0",
4147
"@material-ui/icons": "3.0.1",
4248
"array.prototype.flatmap": "1.2.1",
4349
"base16": "1.0.0",
4450
"classnames": "2.2.6",
4551
"history": "4.7.2",
4652
"inflector-js": "1.0.1",
47-
"invert-color": "1.5.0",
53+
"invert-color": "2.0.0",
4854
"json-schema": "0.2.3",
4955
"jss": "9.4.0",
50-
"react": "16.5.2",
51-
"react-dom": "16.5.2",
56+
"react": "16.6.3",
57+
"react-dom": "16.6.3",
5258
"react-json-view": "1.19.1",
5359
"react-remarkable": "1.1.3",
54-
"react-schema-form": "0.5.0",
55-
"react-tap-event-plugin": "3.0.2",
60+
"react-schema-form": "0.6.2",
5661
"rxjs": "5.4.3",
5762
"uri-js": "4.2.2",
5863
"uri-template": "1.0.1",

src/components/HyperMediaControls/TextAreaField.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,4 @@ const TextAreaField: StatelessComponent<ReactSchemaFormInputProps> = ({
2929
</div>
3030
);
3131

32-
export default ComposedComponent.default(TextAreaField);
32+
export default ComposedComponent(TextAreaField);

src/components/HyperMediaControls/UuidField.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,4 @@ class UuidField extends React.PureComponent<ReactSchemaFormInputProps> {
4848
}
4949
}
5050

51-
export default ComposedComponent.default(UuidField);
51+
export default ComposedComponent(UuidField);

0 commit comments

Comments
 (0)