1 | # React Components Powered by Digituz
|
2 |
|
3 | This repository houses React Components provided by Digituz. All components are self-contained as distinct NPM packages and the orchestration of these packages is handled by [`@digituz/monorepo`](https://github.com/Digituz/monorepo).
|
4 |
|
5 | One of the main goals of this project is to provide React components with as few dependencies as possible.
|
6 |
|
7 | For the moment, this monorepo contains the following components:
|
8 |
|
9 | - [`Button`](./src/Button)
|
10 | - [`Header`](./src/Header)
|
11 | - [`Input`](./src/Input)
|
12 | - [`InputLabel`](./src/InputLabel)
|
13 | - [`Panel`](./src/Panel)
|
14 |
|
15 | ## Creating New Components
|
16 |
|
17 | There is a script on `./src/create-component.js` file that takes as an argument the name of the component and create boilerplate code and files to it. To use it, go to `./src` and issue this:
|
18 |
|
19 | ```bash
|
20 | node create-component MyComponentName
|
21 | ```
|
22 |
|
23 | ## Releasing New Versions
|
24 |
|
25 | This section is divided into two parts. First, there will be a subsection that explains how to use `@digituz/monorepo` to release new versions. After that, there will be a subsection about Travis CI.
|
26 |
|
27 | ### Digituz Monorepo
|
28 |
|
29 | As this project uses `@digituz/monorepo` to orchestrate multiple NPM packages, this subsection shows how to use some `monorepo` commands.
|
30 |
|
31 | ```bash
|
32 | # monorepo is available at the src directory
|
33 | cd src
|
34 |
|
35 | # test all packages
|
36 | monorepo test
|
37 |
|
38 | # test a single package
|
39 | monorepo test -p Button
|
40 |
|
41 | # run a script on a single package
|
42 | monorepo runScript -r processCss -p Input
|
43 |
|
44 | # bump minor version
|
45 | monorepo bump -b minor
|
46 | ```
|
47 |
|
48 | The only command necessary to release new versions is the last one, `monorepo bump -b minor`. After executing it, you will see that there is a new Git tag available. Then, you will have to push it to Travis so this tool knows that it must publish new versions.
|
49 |
|
50 | The command to update the Git repository and, consequently, to make Travis trigger a release is:
|
51 |
|
52 | ```bash
|
53 | git push origin master --tags
|
54 | ```
|
55 |
|
56 | ### Travis CI
|
57 |
|
58 | The [`.travis.yml`](./.travis.yml) file contains an encrypted `$NPM_TOKEN` environment variable in the `env.global.secure` property. To publish to NPM, Travis must have a valid token. That is, you **must** have NPM logged in on an environment. If you issue `npm logout`, NPM removes the token from your account and, as such, this becomes an invalid token.
|
59 |
|
60 | So, if this happens, you need to `npm login` again in some environment (like you development machine). Then, looking in your `~/.npmrc` file, you will see an entry that looks something like this:
|
61 |
|
62 | ```bash
|
63 | //registry.mycompany.com/:_authToken=[my-secret-token]
|
64 | ```
|
65 |
|
66 | Copy whatever you find in the place of `[my-secret-token]`, and use it with the following command:
|
67 |
|
68 | ```bash
|
69 | travis encrypt NPM_TOKEN=[my-secret-token] --add env.global
|
70 | ```
|
71 |
|
72 | This will create a new `env.global.secure`. Note that it is better to remove the previous `env.global.secure` property, as it is not valid anymore and that it needs to be replaced by the new one.
|