|
1 | | -name: Build and publish container non develop |
2 | | - |
3 | | -on: |
4 | | - push: |
5 | | - branches: |
6 | | - - '**' |
7 | | - - '!develop' |
8 | | - |
9 | | -env: |
10 | | - DOCKER_HUB_ORGANIZATION: ${{ vars.DOCKER_HUB_ORGANIZATION }} |
11 | | - DOCKER_HUB_REPOSITORY: obp-api |
12 | | - |
13 | | -jobs: |
14 | | - build: |
15 | | - runs-on: ubuntu-latest |
16 | | - services: |
17 | | - # Label used to access the service container |
18 | | - redis: |
19 | | - # Docker Hub image |
20 | | - image: redis |
21 | | - ports: |
22 | | - # Opens tcp port 6379 on the host and service container |
23 | | - - 6379:6379 |
24 | | - # Set health checks to wait until redis has started |
25 | | - options: >- |
26 | | - --health-cmd "redis-cli ping" |
27 | | - --health-interval 10s |
28 | | - --health-timeout 5s |
29 | | - --health-retries 5 |
30 | | - steps: |
31 | | - - uses: actions/checkout@v4 |
32 | | - - name: Extract branch name |
33 | | - shell: bash |
34 | | - run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" |
35 | | - - name: Set up JDK 11 |
36 | | - uses: actions/setup-java@v4 |
37 | | - with: |
38 | | - java-version: '11' |
39 | | - distribution: 'adopt' |
40 | | - cache: maven |
41 | | - - name: Build with Maven |
42 | | - run: | |
43 | | - set -o pipefail |
44 | | - cp obp-api/src/main/resources/props/sample.props.template obp-api/src/main/resources/props/production.default.props |
45 | | - echo connector=star > obp-api/src/main/resources/props/test.default.props |
46 | | - echo starConnector_supported_types=mapped,internal >> obp-api/src/main/resources/props/test.default.props |
47 | | - echo hostname=http://localhost:8016 >> obp-api/src/main/resources/props/test.default.props |
48 | | - echo tests.port=8016 >> obp-api/src/main/resources/props/test.default.props |
49 | | - echo End of minimum settings >> obp-api/src/main/resources/props/test.default.props |
50 | | - echo payments_enabled=false >> obp-api/src/main/resources/props/test.default.props |
51 | | - echo importer_secret=change_me >> obp-api/src/main/resources/props/test.default.props |
52 | | - echo messageQueue.updateBankAccountsTransaction=false >> obp-api/src/main/resources/props/test.default.props |
53 | | - echo messageQueue.createBankAccounts=false >> obp-api/src/main/resources/props/test.default.props |
54 | | - echo allow_sandbox_account_creation=true >> obp-api/src/main/resources/props/test.default.props |
55 | | - echo allow_sandbox_data_import=true >> obp-api/src/main/resources/props/test.default.props |
56 | | - echo sandbox_data_import_secret=change_me >> obp-api/src/main/resources/props/test.default.props |
57 | | - echo allow_account_deletion=true >> obp-api/src/main/resources/props/test.default.props |
58 | | - echo allowed_internal_redirect_urls = /,/oauth/authorize >> obp-api/src/main/resources/props/test.default.props |
59 | | - echo transactionRequests_enabled=true >> obp-api/src/main/resources/props/test.default.props |
60 | | - echo transactionRequests_supported_types=SEPA,SANDBOX_TAN,FREE_FORM,COUNTERPARTY,ACCOUNT,SIMPLE >> obp-api/src/main/resources/props/test.default.props |
61 | | - echo SIMPLE_OTP_INSTRUCTION_TRANSPORT=dummy >> obp-api/src/main/resources/props/test.default.props |
62 | | - echo openredirects.hostname.whitlelist=http://127.0.0.1,http://localhost >> obp-api/src/main/resources/props/test.default.props |
63 | | - echo remotedata.secret = foobarbaz >> obp-api/src/main/resources/props/test.default.props |
64 | | - echo allow_public_views=true >> obp-api/src/main/resources/props/test.default.props |
65 | | -
|
66 | | - echo SIMPLE_OTP_INSTRUCTION_TRANSPORT=dummy >> obp-api/src/main/resources/props/test.default.props |
67 | | - echo ACCOUNT_OTP_INSTRUCTION_TRANSPORT=dummy >> obp-api/src/main/resources/props/test.default.props |
68 | | - echo SEPA_OTP_INSTRUCTION_TRANSPORT=dummy >> obp-api/src/main/resources/props/test.default.props |
69 | | - echo FREE_FORM_OTP_INSTRUCTION_TRANSPORT=dummy >> obp-api/src/main/resources/props/test.default.props |
70 | | - echo COUNTERPARTY_OTP_INSTRUCTION_TRANSPORT=dummy >> obp-api/src/main/resources/props/test.default.props |
71 | | - echo SEPA_CREDIT_TRANSFERS_OTP_INSTRUCTION_TRANSPORT=dummy >> obp-api/src/main/resources/props/test.default.props |
72 | | -
|
73 | | - echo allow_oauth2_login=true >> obp-api/src/main/resources/props/test.default.props |
74 | | - echo oauth2.jwk_set.url=https://www.googleapis.com/oauth2/v3/certs >> obp-api/src/main/resources/props/test.default.props |
75 | | -
|
76 | | - echo ResetPasswordUrlEnabled=true >> obp-api/src/main/resources/props/test.default.props |
77 | | -
|
78 | | - echo consents.allowed=true >> obp-api/src/main/resources/props/test.default.props |
79 | | - MAVEN_OPTS="-Xmx3G -Xss2m" mvn clean package -Pprod 2>&1 | tee maven-build.log |
80 | | -
|
81 | | - - name: Report failing tests (if any) |
82 | | - if: always() |
83 | | - run: | |
84 | | - echo "Checking build log for failing tests via grep..." |
85 | | - if [ ! -f maven-build.log ]; then |
86 | | - echo "No maven-build.log found; skipping failure scan." |
87 | | - exit 0 |
88 | | - fi |
89 | | - if grep -n "\*\*\* FAILED \*\*\*" maven-build.log; then |
90 | | - echo "Failing tests detected above." |
91 | | - exit 1 |
92 | | - else |
93 | | - echo "No failing tests detected in maven-build.log." |
94 | | - fi |
95 | | -
|
96 | | - - name: Upload Maven build log |
97 | | - if: always() |
98 | | - uses: actions/upload-artifact@v4 |
99 | | - with: |
100 | | - name: maven-build-log |
101 | | - if-no-files-found: ignore |
102 | | - path: | |
103 | | - maven-build.log |
104 | | -
|
105 | | - - name: Upload test reports |
106 | | - if: always() |
107 | | - uses: actions/upload-artifact@v4 |
108 | | - with: |
109 | | - name: test-reports |
110 | | - if-no-files-found: ignore |
111 | | - path: | |
112 | | - obp-api/target/surefire-reports/** |
113 | | - obp-commons/target/surefire-reports/** |
114 | | - **/target/scalatest-reports/** |
115 | | - **/target/site/surefire-report.html |
116 | | - **/target/site/surefire-report/* |
117 | | -
|
118 | | - - name: Save .war artifact |
119 | | - run: | |
120 | | - mkdir -p ./push |
121 | | - cp obp-api/target/obp-api-1.*.war ./push/ |
122 | | - - uses: actions/upload-artifact@v4 |
123 | | - with: |
124 | | - name: ${{ github.sha }} |
125 | | - path: push/ |
126 | | - |
127 | | - - name: Build the Docker image |
128 | | - run: | |
129 | | - echo "${{ secrets.DOCKER_HUB_TOKEN }}" | docker login -u "${{ secrets.DOCKER_HUB_USERNAME }}" --password-stdin docker.io |
130 | | - docker build . --file .github/Dockerfile_PreBuild --tag docker.io/${{ env.DOCKER_HUB_ORGANIZATION }}/${{ env.DOCKER_HUB_REPOSITORY }}:$GITHUB_SHA --tag docker.io/${{ env.DOCKER_HUB_ORGANIZATION }}/${{ env.DOCKER_HUB_REPOSITORY }}:${GITHUB_REF##*/} |
131 | | - docker build . --file .github/Dockerfile_PreBuild_OC --tag docker.io/${{ env.DOCKER_HUB_ORGANIZATION }}/${{ env.DOCKER_HUB_REPOSITORY }}:$GITHUB_SHA-OC --tag docker.io/${{ env.DOCKER_HUB_ORGANIZATION }}/${{ env.DOCKER_HUB_REPOSITORY }}:${GITHUB_REF##*/}-OC |
132 | | - docker push docker.io/${{ env.DOCKER_HUB_ORGANIZATION }}/${{ env.DOCKER_HUB_REPOSITORY }} --all-tags |
133 | | - echo docker done |
134 | | -
|
135 | | - - uses: sigstore/cosign-installer@4d14d7f17e7112af04ea6108fbb4bfc714c00390 |
136 | | - |
137 | | - - name: Write signing key to disk (only needed for `cosign sign --key`) |
138 | | - run: echo "${{ secrets.COSIGN_PRIVATE_KEY }}" > cosign.key |
139 | | - |
140 | | - - name: Sign container image |
141 | | - run: | |
142 | | - cosign sign -y --key cosign.key \ |
143 | | - docker.io/${{ env.DOCKER_HUB_ORGANIZATION }}/${{ env.DOCKER_HUB_REPOSITORY }}:${GITHUB_REF##*/} |
144 | | - cosign sign -y --key cosign.key \ |
145 | | - docker.io/${{ env.DOCKER_HUB_ORGANIZATION }}/${{ env.DOCKER_HUB_REPOSITORY }}:${GITHUB_REF##*/}-OC |
146 | | - cosign sign -y --key cosign.key \ |
147 | | - docker.io/${{ env.DOCKER_HUB_ORGANIZATION }}/${{ env.DOCKER_HUB_REPOSITORY }}:$GITHUB_SHA |
148 | | - env: |
149 | | - COSIGN_PASSWORD: "${{secrets.COSIGN_PASSWORD}}" |
150 | | - |
151 | | - |
0 commit comments