You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+38-23Lines changed: 38 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,22 +2,21 @@
2
2
3
3
A [Workspace] harness is a way to ship files to a project without being part of the project.
4
4
5
-
In this repository are a set of harnesses that have been created for the PHP language, reducing the maintenance overhead
6
-
of the individual harnesses greatly. This is due to the "base" PHP harness being used as a common set of templates.
5
+
In this repository are a set of harnesses that have been created for the NodeJS language, reducing the maintenance overhead
6
+
of the individual harnesses greatly. This is due to the "base" node harness being used as a common set of templates.
7
7
8
8
Each framework will fully override a base harness file if differing behaviour is required.
9
9
10
10
## Available Frameworks
11
11
12
-
*[Alokai](src/alokai/)
13
-
*[NextJs](src/nextjs/)
12
+
-[NextJs](src/nextjs/)
14
13
15
14
## Features of each harness
16
15
17
-
* Local docker compose development environment
18
-
* Skeleton for simple set-up of new projects
19
-
* Pipeline docker compose environment for use in Jenkins or other tools to run tests
20
-
* TODO: Helm chart for deploying QA, UAT and Production environments to Kubernetes clusters
16
+
- Local docker compose development environment
17
+
- Skeleton for simple set-up of new projects
18
+
- Pipeline docker compose environment for use in Jenkins or other tools to run tests
19
+
- TODO: Helm chart for deploying QA, UAT and Production environments to Kubernetes clusters
21
20
22
21
## Harness Upgrade Instructions
23
22
@@ -28,36 +27,42 @@ A developer for a project can follow these steps to upgrade their harness versio
28
27
2. Check what harness is in use for the project. This is usually line 2 or 3 in `workspace.yml`.
29
28
3. Update the `workspace.yml` harness version (usually line 2 or 3) to the new tagged version.
30
29
4. Download the new harness version:
30
+
31
31
```bash
32
32
rm -rf .my127ws
33
33
ws harness download
34
34
```
35
+
35
36
5. Perform a recursive diff between the new release from the checked out harness from step 1 and any "overlay"
36
37
directories such as `tools/workspace/`.
37
-
1. Remove any files from the project that are now the same as the harness.
38
-
2. Port over any changes from the harness to override files that must stay.
38
+
1. Remove any files from the project that are now the same as the harness.
39
+
2. Port over any changes from the harness to override files that must stay.
39
40
6. Render the templates and apply the overlay directory:
41
+
40
42
```bash
41
43
ws harness prepare
42
44
```
45
+
43
46
7. Perform a recursive diff between the `.my127ws/application/skeleton/` folder to the project root:
44
-
1. If a skeleton file (that isn't in a `_twig` folder or named `*.twig`) is missing, copy it to the project
45
-
2. If a project file is missing some changes from the skeleton, try applying the change from the skeleton.
46
-
3. Port over new features such as new standard dev tooling in composer.json.
47
-
4. Ensure the README.md is up to date, though keep any changes made to the project's README.md over time.
47
+
1. If a skeleton file (that isn't in a `_twig` folder or named `*.twig`) is missing, copy it to the project
48
+
2. If a project file is missing some changes from the skeleton, try applying the change from the skeleton.
49
+
3. Port over new features such as new standard dev tooling in composer.json.
50
+
4. Ensure the README.md is up to date, though keep any changes made to the project's README.md over time.
48
51
8. Compare the overrides for attributes in the project's `workspace.yml` to the harness's `harness.yml` and `harness/attributes/*.yml`.
49
-
1. Port over any additional build, init or migrate steps.
50
-
2. Remove any attribute overrides from workspace.yml that are now the same as the harness.
52
+
1. Port over any additional build, init or migrate steps.
53
+
2. Remove any attribute overrides from workspace.yml that are now the same as the harness.
51
54
9. Test with `ws harness update existing`
52
55
10. Open a pull request with the project and ensure CI checks (such as Jenkins) pass.
53
56
11. Note on the pull request that to apply the changes, the following needs to be done by the project team:
57
+
54
58
```markdown
55
59
To keep your existing database:
56
60
`ws harness update existing`
57
61
58
62
To do a fresh installation:
59
63
`ws harness update fresh`
60
64
```
65
+
61
66
12. Ask for someone else to test the pull request.
62
67
13. Once the pull request has been merged to the default branch of the project, remind the project team to apply the changes with the `ws harness update existing` or `ws harness update fresh` commands.
63
68
@@ -87,6 +92,7 @@ folder. This is used for testing in Jenkins.
87
92
### Quality check
88
93
89
94
We run shellcheck and hadolint across shell scripts and Dockerfiles. These can be run via:
95
+
90
96
```bash
91
97
./quality
92
98
```
@@ -96,8 +102,9 @@ The `./test` script described below also runs these quality checks against rende
96
102
97
103
### End to end tests with the secret key
98
104
99
-
If you have access to the secret key needed to decrypt the src/.ci/*/workspace.yml encrypted attributes, you can run
105
+
If you have access to the secret key needed to decrypt the src/.ci/\*/workspace.yml encrypted attributes, you can run
100
106
the following to test the given framework in the given mode like Jenkins does:
0 commit comments