Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: OpenLiberty/devfile-stack
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: devfile-0.4.1
Choose a base ref
...
head repository: OpenLiberty/devfile-stack
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Loading
Showing with 4,624 additions and 533 deletions.
  1. +134 −0 .github/workflows/stack-regression-tests-ol.yml
  2. +134 −0 .github/workflows/stack-regression-tests-wl.yml
  3. +0 −52 .github/workflows/stack-regression-tests.yml
  4. +1 −4 .gitignore
  5. +8 −8 CONTRIBUTING.md
  6. +25 −16 README.md
  7. +65 −61 build.sh
  8. +56 −0 customize-ol.env
  9. +56 −0 customize-wl.env
  10. +201 −0 src/README.md
  11. +142 −0 src/devfiles/gradle/devfile.yaml
  12. +145 −0 src/devfiles/maven/devfile.yaml
  13. +95 −0 src/image/gradle/Dockerfile
  14. +29 −22 {templates/stackimage → src/image/maven}/Dockerfile
  15. +99 −0 src/outer-loop/gradle/Dockerfile
  16. +42 −15 {templates/outer-loop → src/outer-loop/maven}/Dockerfile
  17. +142 −0 stack/open-liberty/devfiles/gradle/devfile.yaml
  18. +145 −0 stack/open-liberty/devfiles/maven/devfile.yaml
  19. +95 −0 stack/open-liberty/image/gradle/Dockerfile
  20. +119 −0 stack/open-liberty/image/maven/Dockerfile
  21. +21 −0 stack/open-liberty/meta.yaml
  22. +50 −0 stack/open-liberty/outer-loop/app-deploy.yaml
  23. +99 −0 stack/open-liberty/outer-loop/gradle/Dockerfile
  24. +98 −0 stack/open-liberty/outer-loop/maven/Dockerfile
  25. +142 −0 stack/websphere-liberty/devfiles/gradle/devfile.yaml
  26. +145 −0 stack/websphere-liberty/devfiles/maven/devfile.yaml
  27. +95 −0 stack/websphere-liberty/image/gradle/Dockerfile
  28. +119 −0 stack/websphere-liberty/image/maven/Dockerfile
  29. +21 −0 stack/websphere-liberty/meta.yaml
  30. +50 −0 stack/websphere-liberty/outer-loop/app-deploy.yaml
  31. +99 −0 stack/websphere-liberty/outer-loop/gradle/Dockerfile
  32. +98 −0 stack/websphere-liberty/outer-loop/maven/Dockerfile
  33. +0 −84 templates/devfile.yaml
  34. +0 −5 templates/meta.yaml
  35. +0 −29 templates/outer-loop/app-deploy.yaml
  36. +42 −39 test/README.md
  37. +41 −0 test/files/intro-app/microprofile-v3/SampleLivenessCheck.java
  38. +40 −0 test/files/intro-app/microprofile-v3/SampleReadinessCheck.java
  39. +89 −0 test/files/intro-app/microprofile-v3/build.gradle
  40. +157 −0 test/files/intro-app/microprofile-v3/pom.xml
  41. +37 −0 test/files/intro-app/microprofile-v3/server.xml
  42. +176 −0 test/inner-loop/base-inner-loop.sh
  43. +58 −0 test/inner-loop/basic-mvnw-test.sh
  44. +56 −0 test/inner-loop/basic-test.sh
  45. +53 −0 test/inner-loop/build-type-image-test.sh
  46. +79 −0 test/inner-loop/devfile-regression-test.sh
  47. +68 −0 test/inner-loop/mp3-regression-test.sh
  48. +54 −0 test/inner-loop/multi-module.sh
  49. +56 −0 test/inner-loop/parent-plugin-test.sh
  50. +49 −0 test/inner-loop/sample-m2-parent-test.sh
  51. +155 −0 test/outer-loop/base-outer-loop.sh
  52. +53 −0 test/outer-loop/basic-test.sh
  53. +53 −0 test/outer-loop/docker-build-mphOff-sccOff-test.sh
  54. +53 −0 test/outer-loop/docker-build-mphOff-sccOn-test.sh
  55. +53 −0 test/outer-loop/docker-build-mphOn-sccOff-test.sh
  56. +0 −67 test/stack-test-inner-loop.sh
  57. +0 −102 test/stack-test-outer-loop.sh
  58. +46 −0 test/stack/build-test.sh
  59. +149 −16 test/utils.sh
  60. +16 −0 tools/build/env/ol.env
  61. +16 −0 tools/build/env/wl.env
  62. +103 −0 tools/build/scripts/customize.sh
  63. 0 {stackimage → tools/image}/LICENSE
  64. +1 −1 {stackimage → tools/image}/config/configDropins/defaults/liberty-stack-mpHealth.xml
  65. 0 {stackimage → tools/image}/mvn-stack-settings.xml
  66. +69 −0 tools/image/primer/jaxrs/build.gradle
  67. +15 −11 {stackimage/priming-app → tools/image/primer/jaxrs}/pom.xml
  68. +1 −0 tools/image/primer/jaxrs/settings.gradle
  69. +16 −1 {stackimage/priming-app → tools/image/primer/jaxrs}/src/main/liberty/config/server.xml
  70. 0 {stackimage/priming-app → tools/image/primer/jaxrs}/src/test/java/dev/odo/starter/it/EndpointIT.java
134 changes: 134 additions & 0 deletions .github/workflows/stack-regression-tests-ol.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
name: stack-regression-tests-ol
on:
pull_request:
branches:
- main
jobs:
stack-validation:
runs-on: ubuntu-latest
steps:
- name: 'Setup: Checkout'
uses: actions/checkout@v2

- name: 'Validate: stack customization and output files content agreement'
run: ./test/stack/build-test.sh ol
stack-tests:
runs-on: ubuntu-latest
needs: stack-validation
steps:
- name: 'Setup: Checkout'
uses: actions/checkout@v2

- name: 'Setup: Install Minikube'
uses: manusa/actions-setup-minikube@v2.3.1
with:
minikube version: 'v1.25.1'
kubernetes version: 'v1.23.1'
github token: ${{ secrets.GITHUB_TOKEN }}
start args: '--addons=registry --addons=ingress --insecure-registry "10.0.0.0/24"'

- name: 'Setup: Wait for nodes to be ready'
run: |
while [[ $(kubectl get nodes -o 'jsonpath={..status.conditions[?(@.type=="Ready")].status}') != "True" ]]; do
echo "waiting for nodes" && sleep 1;
done
- name: 'Setup: Install odo'
run: |
sudo curl -L https://developers.redhat.com/content-gateway/rest/mirror/pub/openshift-v4/clients/odo/latest/odo-linux-amd64 -o /usr/local/bin/odo
sudo chmod +x /usr/local/bin/odo
- name: 'Setup: Print version info'
run: |
set -x
docker version
kubectl version
odo version
minikube version
set +x
- name: 'Setup: Install the Open Liberty operator'
run: ./test/utils.sh installOpenLibertyOperator

- name: 'Setup: Re-build the Liberty devfile stack'
run: ./test/utils.sh customizeStack ol

- name: 'Setup: Build the devfile stack image'
run: ./test/utils.sh buildStackImage ol

- name: 'Test: InnerLoop: Maven: Basic'
run: ./test/inner-loop/basic-test.sh ol maven

- name: 'Test: InnerLoop: Maven: Basic with mvnw'
run: ./test/inner-loop/basic-mvnw-test.sh ol maven

- name: 'Test: InnerLoop: Gradle: Basic'
run: ./test/inner-loop/basic-test.sh ol gradle

- name: 'Test: InnerLoop: Maven: Devfile regression'
if: success() || failure()
run: ./test/inner-loop/devfile-regression-test.sh ol maven

- name: 'Test: InnerLoop: Gradle: Devfile regression'
if: success() || failure()
run: ./test/inner-loop/devfile-regression-test.sh ol gradle

- name: 'Test: InnerLoop: Maven: microprofile v3 regression'
if: success() || failure()
run: ./test/inner-loop/mp3-regression-test.sh ol maven

- name: 'Test: InnerLoop: Gradle: microprofile v3 regression'
if: success() || failure()
run: ./test/inner-loop/mp3-regression-test.sh ol gradle

- name: 'Test: InnerLoop: Maven: Uses an official Maven image'
if: success() || failure()
run: ./test/inner-loop/build-type-image-test.sh ol maven

- name: 'Test: InnerLoop: Gradle: Uses an official Gradle image'
if: success() || failure()
run: ./test/inner-loop/build-type-image-test.sh ol gradle

- name: 'Test: InnerLoop: Maven: m2 parent sample regression'
if: success() || failure()
run: ./test/inner-loop/sample-m2-parent-test.sh ol maven

- name: 'Test: InnerLoop: Maven: Parent plugin'
if: success() || failure()
run: ./test/inner-loop/parent-plugin-test.sh ol maven

- name: 'Test: InnerLoop: Maven: multi-module'
if: success() || failure()
run: ./test/inner-loop/multi-module.sh ol maven

- name: 'Test: OuterLoop: Maven: Basic'
if: success() || failure()
run: ./test/outer-loop/basic-test.sh ol maven

- name: 'Test: OuterLoop: Gradle: Basic'
if: success() || failure()
run: ./test/outer-loop/basic-test.sh ol gradle

- name: 'Test: OuterLoop: Maven: Docker build MPH-off SCC-off args'
if: success() || failure()
run: ./test/outer-loop/docker-build-mphOff-sccOff-test.sh ol maven

- name: 'Test: OuterLoop: Gradle: Docker build MPH-off SCC-off args'
if: success() || failure()
run: ./test/outer-loop/docker-build-mphOff-sccOff-test.sh ol gradle

- name: 'Test: OuterLoop: Maven: Docker build with MPH-on SCC-off args'
if: success() || failure()
run: ./test/outer-loop/docker-build-mphOn-sccOff-test.sh ol maven

- name: 'Test: OuterLoop: Gradle: Docker build with MPH-on SCC-off args'
if: success() || failure()
run: ./test/outer-loop/docker-build-mphOn-sccOff-test.sh ol gradle

- name: 'Test: OuterLoop: Maven: Docker build with MPH-off SCC-on args'
if: success() || failure()
run: ./test/outer-loop/docker-build-mphOff-sccOn-test.sh ol maven

- name: 'Test: OuterLoop: Gradle: Docker build with MPH-off SCC-on args'
if: always()
run: ./test/outer-loop/docker-build-mphOff-sccOn-test.sh ol gradle
134 changes: 134 additions & 0 deletions .github/workflows/stack-regression-tests-wl.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
name: stack-regression-tests-wl
on:
pull_request:
branches:
- main
jobs:
stack-validation:
runs-on: ubuntu-latest
steps:
- name: 'Setup: Checkout'
uses: actions/checkout@v2

- name: 'Validate: stack customization and output files content agreement'
run: ./test/stack/build-test.sh wl
stack-tests:
runs-on: ubuntu-latest
needs: stack-validation
steps:
- name: 'Setup: Checkout'
uses: actions/checkout@v2

- name: 'Setup: Install Minikube'
uses: manusa/actions-setup-minikube@v2.3.1
with:
minikube version: 'v1.25.1'
kubernetes version: 'v1.23.1'
github token: ${{ secrets.GITHUB_TOKEN }}
start args: '--addons=registry --addons=ingress --insecure-registry "10.0.0.0/24"'

- name: 'Setup: Wait for nodes to be ready'
run: |
while [[ $(kubectl get nodes -o 'jsonpath={..status.conditions[?(@.type=="Ready")].status}') != "True" ]]; do
echo "waiting for nodes" && sleep 1;
done
- name: 'Setup: Install odo'
run: |
sudo curl -L https://developers.redhat.com/content-gateway/rest/mirror/pub/openshift-v4/clients/odo/latest/odo-linux-amd64 -o /usr/local/bin/odo
sudo chmod +x /usr/local/bin/odo
- name: 'Setup: Print version info'
run: |
set -x
docker version
kubectl version
odo version
minikube version
set +x
- name: 'Setup: Install the Open Liberty operator'
run: ./test/utils.sh installOpenLibertyOperator

- name: 'Setup: Re-build the WebSphere Liberty stack'
run: ./test/utils.sh customizeStack wl

- name: 'Setup: Build the devfile stack image'
run: ./test/utils.sh buildStackImage wl

- name: 'Test: InnerLoop: Maven: Basic'
run: ./test/inner-loop/basic-test.sh wl maven

- name: 'Test: InnerLoop: Maven: Basic with mvnw'
run: ./test/inner-loop/basic-mvnw-test.sh wl maven

- name: 'Test: InnerLoop: Gradle: Basic'
run: ./test/inner-loop/basic-test.sh wl gradle

- name: 'Test: InnerLoop: Maven: Devfile regression'
if: success() || failure()
run: ./test/inner-loop/devfile-regression-test.sh wl maven

- name: 'Test: InnerLoop: Gradle: Devfile regression'
if: success() || failure()
run: ./test/inner-loop/devfile-regression-test.sh wl gradle

- name: 'Test: InnerLoop: Maven: microprofile v3 regression'
if: success() || failure()
run: ./test/inner-loop/mp3-regression-test.sh wl maven

- name: 'Test: InnerLoop: Gradle: microprofile v3 regression'
if: success() || failure()
run: ./test/inner-loop/mp3-regression-test.sh wl gradle

- name: 'Test: InnerLoop: Maven: Uses an official Maven image'
if: success() || failure()
run: ./test/inner-loop/build-type-image-test.sh wl maven

- name: 'Test: InnerLoop: Gradle: Uses an official Gradle image'
if: success() || failure()
run: ./test/inner-loop/build-type-image-test.sh wl gradle

- name: 'Test: InnerLoop: Maven: m2 parent sample regression'
if: success() || failure()
run: ./test/inner-loop/sample-m2-parent-test.sh wl maven

- name: 'Test: InnerLoop: Maven: Parent plugin'
if: success() || failure()
run: ./test/inner-loop/parent-plugin-test.sh wl maven

- name: 'Test: InnerLoop: Maven: multi-module'
if: success() || failure()
run: ./test/inner-loop/multi-module.sh wl maven

- name: 'Test: OuterLoop: Maven: Basic'
if: success() || failure()
run: ./test/outer-loop/basic-test.sh wl maven

- name: 'Test: OuterLoop: Gradle: Basic'
if: success() || failure()
run: ./test/outer-loop/basic-test.sh wl gradle

- name: 'Test: OuterLoop: Maven: Docker build MPH-off SCC-off args'
if: success() || failure()
run: ./test/outer-loop/docker-build-mphOff-sccOff-test.sh wl maven

- name: 'Test: OuterLoop: Gradle: Docker build MPH-off SCC-off args'
if: success() || failure()
run: ./test/outer-loop/docker-build-mphOff-sccOff-test.sh wl gradle

- name: 'Test: OuterLoop: Maven: Docker build with MPH-on SCC-off args'
if: success() || failure()
run: ./test/outer-loop/docker-build-mphOn-sccOff-test.sh wl maven

- name: 'Test: OuterLoop: Gradle: Docker build with MPH-on SCC-off args'
if: success() || failure()
run: ./test/outer-loop/docker-build-mphOn-sccOff-test.sh wl gradle

- name: 'Test: OuterLoop: Maven: Docker build with MPH-off SCC-on args'
if: success() || failure()
run: ./test/outer-loop/docker-build-mphOff-sccOn-test.sh wl maven

- name: 'Test: OuterLoop: Gradle: Docker build with MPH-off SCC-on args'
if: success() || failure()
run: ./test/outer-loop/docker-build-mphOff-sccOn-test.sh wl gradle
52 changes: 0 additions & 52 deletions .github/workflows/stack-regression-tests.yml

This file was deleted.

5 changes: 1 addition & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
target/

# generated from stack build.sh, not source
generated/

# eclipse specific git ignore
*.pydevproject
.project
@@ -36,4 +33,4 @@ buildNumber.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
.odo/odo-file-index.json
**/.DS_Store
**/.DS_Store
16 changes: 8 additions & 8 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -2,25 +2,25 @@
Anyone can contribute to the Open Liberty project and we welcome your contributions!

There are multiple ways to contribute: report bugs, fix bugs, contribute code, improve upon documentation, etc. You must follow these guidelines:
* [Raising issues](https://github.com/OpenLiberty/stack/blob/master/CONTRIBUTING.md#raising-issues)
* [Contributor License Agreement](https://github.com/OpenLiberty/stack/blob/master/CONTRIBUTING.md#contributor-license-agreement)
* [Coding Standards](https://github.com/OpenLiberty/stack/blob/master/CONTRIBUTING.md#coding-standards)
* [Raising issues](https://github.com/OpenLiberty/devfile-stack/blob/main/CONTRIBUTING.md#raising-issues)
* [Contributor License Agreement](https://github.com/OpenLiberty/devfile-stack/blob/main/CONTRIBUTING.md#contributor-license-agreement)
* [Coding Standards](https://github.com/OpenLiberty/devfile-stack/blob/main/CONTRIBUTING.md#coding-standards)

## Raising issues
Please raise any bug reports on the [Open Liberty project repository's GitHub issue tracker](https://github.com/OpenLiberty/stack/issues). Be sure to search the list to see if your issue has already been raised.
Please raise any bug reports on the [Open Liberty project repository's GitHub issue tracker](https://github.com/OpenLiberty/devfile-stack/issues). Be sure to search the list to see if your issue has already been raised.

A good bug report is one that make it easy for everyone to understand what you were trying to do and what went wrong. Provide as much context as possible so we can try to recreate the issue.

## Contributor License Agreement
If you are contributing code changes via a pull request for anything except trivial changes, you must signoff on the [Individual Contributor License Agreement](https://github.com/OpenLiberty/stack/blob/master/cla/open-liberty-cla-individual.pdf) If you are doing this as part of your job you may also wish to get your employer to sign a CCLA [Corporate Contributor License Agreement](https://github.com/OpenLiberty/stack/blob/master/cla/open-liberty-cla-corporate.pdf). Instructions how to sign and submit these agreements are located at the top of each document. Trivial changes such as Typos, redundant spaces, minor formatting and spelling errors will be labeled as "CLA trivial", and don't require a signed CLA for consideration.
If you are contributing code changes via a pull request for anything except trivial changes, you must signoff on the [Individual Contributor License Agreement](https://github.com/OpenLiberty/open-liberty/blob/release/cla/open-liberty-cla-individual.pdf) If you are doing this as part of your job you may also wish to get your employer to sign a CCLA [Corporate Contributor License Agreement](https://github.com/OpenLiberty/open-liberty/blob/release/cla/open-liberty-cla-corporate.pdf). Instructions how to sign and submit these agreements are located at the top of each document. Trivial changes such as Typos, redundant spaces, minor formatting and spelling errors will be labeled as "CLA trivial", and don't require a signed CLA for consideration.

After we obtain the signed CLA, you are welcome to open a pull request, and the team will be notified for review. We ask you follow these steps through the submission process.
1. Ensure you run a passing local gradle build explained in the [README](https://github.com/OpenLiberty/stack/blob/integration/README.md#contribute-to-stack) before opening a PR.
2. Open PR's against the "integration" branch, as we ensure changes pass our series of verification buckets before pushing to master.
1. Ensure you run a passing local build explained in the [README](https://github.com/OpenLiberty/devfile-stack/blob/main/src/README.md) before opening a PR.
2. Open PR's against the "main" branch, as we ensure changes pass our series of verification buckets before pushing to main.
3. A label will be added "CLA signed" or "CLA trivial" depending on the nature of the change.
4. A team of "reviewers" will be notified, will perform a review, and if approved will invoke a full integration build.
5. Based on the results of the build, and if further review is needed, more discussion will occur.
6. If the reviewer is satisfied with the results, and agrees to the change, the PR will be merged to integration, otherwise the PR will be closed with an explaination and suggestion for followup.
6. If the reviewer is satisfied with the results, and agrees to the change, the PR will be merged to integration, otherwise the PR will be closed with an explanation and suggestion for followup.


## Coding Standards
Loading