Skip to content

Commit d93fe75

Browse files
committed
ci: Add build workflows
1 parent 91f967e commit d93fe75

File tree

11 files changed

+271
-75
lines changed

11 files changed

+271
-75
lines changed

.env-example

Lines changed: 142 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,142 @@
1-
VONAGE_API_KEY=VONAGE_API_KEY
2-
VONAGE_API_SECRET=VONAGE_API_SECRET
3-
VONAGE_APPLICATION_ID=VONAGE_APPLICATION_ID
4-
VONAGE_PRIVATE_KEY_PATH=VONAGE_PRIVATE_KEY_PATH
5-
VONAGE_NUMBER=YOUR_VONAGE_NUMBER
6-
VONAGE_BRAND_NAME=VONAGE_BRAND_NAME
7-
RCS_SENDER_ID=VonageRCSDemo-DevRel
8-
VONAGE_VIBER_SERVICE_MESSAGE_ID=VONAGE_VIBER_SERVICE_MESSAGE_ID
9-
VONAGE_WHATSAPP_NUMBER=WABA_NUMBER
10-
TO_NUMBER=NUMBER_TO_CALL
11-
RECIPIENT_NUMBER=YOUR_RECIPIENTS_NUMBER
12-
YOUR_SECOND_NUMBER=YOUR_SECOND_NUMBER
13-
APPLICATION_NAME=APPLICATION_NAME
14-
NEW_SUBACCOUNT_NAME=NEW_SUBACCOUNT_NAME
15-
NEW_SUBACCOUNT_SECRET=NEW_SUBACCOUNT_SECRET
16-
SUBACCOUNT_KEY=SUBACCOUNT_KEY
17-
AMOUNT=AMOUNT
18-
EMOJI=🐱
19-
MESSAGE_UUID="aaaaaaaa-bbbb-4ccc-8ddd-0123456789ab"
20-
21-
# Set to true to look up CNAM data when using Insights:
22-
CNAM=TRUE_OR_FALSE
23-
EVENT_URL=https://requestb.in/UUID_OR_https://UUID.ngrok.io
24-
25-
# Number Insight building blocks
26-
INSIGHT_NUMBER=NUMBER_TO_PROVIDE_INSIGHT_FOR
27-
28-
# Additional variables
29-
NUMBER_SEARCH_PATTERN=NUMBER_SEARCH_PATTERN
30-
NUMBER_SEARCH_CRITERIA=NUMBER_SEARCH_CRITERIA
31-
COUNTRY_CODE=COUNTRY_CODE
32-
VONAGE_NUMBER_FEATURES=VONAGE_NUMBER_FEATURES
33-
SMS_CALLBACK_URL=SMS_CALLBACK_URL
34-
VOICE_CALLBACK_TYPE=VOICE_CALLBACK_TYPE
35-
VOICE_CALLBACK_VALUE=VOICE_CALLBACK_VALUE
36-
VOICE_STATUS_URL=VOICE_STATUS_URL
37-
INSIGHT_NUMBER=INSIGHT_NUMBER
38-
ASYNC_CALLBACK_URL=ASYNC_CALLBACK_URL
39-
NEW_SECRET=NEW_SECRET
40-
VONAGE_SECRET_ID=VONAGE_SECRET_ID
41-
VONAGE_REDACT_ID=VONAGE_REDACT_ID
42-
REQUEST_ID=REQUEST_ID
43-
CODE=CODE
44-
PAYEE_NAME=PAYEE_NAME
45-
AMOUNT=AMOUNT
46-
NAME=YOUR_NAME
47-
TEMPLATE_ID=TEMPLATE_ID
48-
TEMPLATE_FRAGMENT_ID=TEMPLATE_FRAGMENT_ID
49-
STICKER_URL=STICKER_URL
50-
HEADER_IMAGE_URL=HEADER_IMAGE_URL
51-
WHATSAPP_TEMPLATE_NAMESPACE=WHATSAPP_TEMPLATE_NAMESPACE
52-
WHATSAPP_TEMPLATE_NAME=WHATSAPP_TEMPLATE_NAME
53-
STICKER_ID=STICKER_ID
54-
CATALOG_ID=CATALOG_ID
55-
PRODUCT_ID=PRODUCT_ID
56-
SESSION_ID=SESSION_ID
57-
DISPLAY_NAME=DISPLAY_NAME
58-
ROOM_ID=ROOM_ID
59-
THEME_ID=THEME_ID
60-
RECORDING_ID=RECORDING_ID
61-
EXPIRATION_DATE=2033-07-21T13:37:59.810Z
62-
LOGO_TYPE=favicon
63-
64-
## For Messages Sandbox
65-
MESSAGES_SANDBOX_WHATSAPP_NUMBER=MESSAGES_SANDBOX_WHATSAPP_NUMBER
66-
MESSAGES_SANDBOX_ALLOW_LISTED_TO_NUMBER=MESSAGES_SANDBOX_ALLOW_LISTED_TO_NUMBER
67-
MESSAGES_SANDBOX_FB_ID=MESSAGES_SANDBOX_FB_ID
68-
MESSAGES_SANDBOX_ALLOW_LISTED_FB_RECIPIENT_ID=MESSAGES_SANDBOX_ALLOW_LISTED_FB_RECIPIENT_ID
69-
MESSAGES_SANDBOX_VIBER_SERVICE_ID=MESSAGES_SANDBOX_VIBER_SERVICE_ID
1+
# Auth / General
2+
VONAGE_API_KEY=a1b2c3d4
3+
VONAGE_API_SECRET=1234567890abcdef
4+
VONAGE_SIGNATURE_SECRET=ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz
5+
VONAGE_APPLICATION_ID=aaaaaaaa-bbbb-4ccc-8ddd-0123456789ab
6+
VONAGE_PRIVATE_KEY_PATH=/path/to/aaaaaaaa-bbbb-4ccc-8ddd-0123456789ab_private.key
7+
VONAGE_VIRTUAL_NUMBER=447700900000
8+
9+
# Account
10+
ACCOUNT_ID=f9e8d7c6
11+
ACCOUNT_SECRET=fedcba9876543210
12+
ACCOUNT_SECRET_ID=abcdef09-8765-4321-8cde-0123456789ab
13+
ACCOUNT_SMS_CALLBACK_URL=https://example.org/webhooks/sms-status
14+
15+
# Application
16+
APPLICATION_NAME="My Test Application"
17+
18+
# Messages
19+
MESSAGES_TO_NUMBER="447900000001"
20+
MESSAGES_API_URL="https://api.nexmo.com/v1/messages"
21+
MESSAGES_GEOSPECIFIC_API_URL="https://api-eu.nexmo.com/v1/messages"
22+
MESSAGES_GEOSPECIFIC_API_HOST="api-eu"
23+
MESSAGES_SANDBOX_URL="https://messages-sandbox.nexmo.com/v1/messages"
24+
MESSAGES_MESSAGE_ID="00000000-0000-4000-8000-000000000000"
25+
MESSAGES_IMAGE_URL="https://example.org/image.jpg"
26+
MESSAGES_AUDIO_URL="https://example.org/audio.mp3"
27+
MESSAGES_VIDEO_URL="https://example.org/video.mp4"
28+
MESSAGES_FILE_URL="https://example.org/file.pdf"
29+
MESSAGES_VCARD_URL="https://example.org/vcard.vcf"
30+
MESSAGES_EMOJI="🐱"
31+
MESSAGES_CAPTION="Additional text to accompany the message"
32+
33+
MESSAGES_SANDBOX_VIBER_SERVICE_ID="16273"
34+
MESSAGES_SANDBOX_ALLOW_LISTED_TO_NUMBER="447900000001"
35+
MESSAGES_SANDBOX_FB_ID="100614398987044"
36+
MESSAGES_SANDBOX_ALLOW_LISTED_FB_RECIPIENT_ID="123456789012345"
37+
MESSAGES_SANDBOX_WHATSAPP_NUMBER="14157386102"
38+
39+
SMS_SENDER_ID="447700900000"
40+
MMS_SENDER_ID="447700900000"
41+
RCS_SENDER_ID="VonageRCSDemo-DevRel"
42+
WHATSAPP_SENDER_ID="14157386102"
43+
VIBER_SENDER_ID="16273"
44+
MESSENGER_SENDER_ID="100614398987044"
45+
MESSENGER_RECIPIENT_ID="1234567890"
46+
47+
VIBER_VIDEO_DURATION="30"
48+
VIBER_THUMB_URL="https://example.org/thumbnail.jpg"
49+
VIBER_VIDEO_FILE_SIZE="64"
50+
VIBER_VIDEO_TTL="86400"
51+
WHATSAPP_TEMPLATE_NAME="verify"
52+
WHATSAPP_OTP="54321"
53+
WHATSAPP_CATALOG_ID="fedcba9876543210"
54+
WHATSAPP_PRODUCT_ID="2lc20305pt"
55+
WHATSAPP_STICKER_ID="13aaecab-2485-4255-a0a7-97a2be6906b9"
56+
WHATSAPP_STICKER_URL="https://example.org/sticker.webp"
57+
WHATSAPP_HEADER_IMAGE_URL="https://example.org/header.png"
58+
WHATSAPP_TEMPLATE_NAMESPACE="9b6b4fcb_da19_4a26_8fe8_78074a91b584"
59+
WHATSAPP_AUTH_TEMPLATE_NAME="auth"
60+
WHATSAPP_TEMPLATE_REPLACEMENT_TEXT="Vonage Verification"
61+
62+
# Network APIs
63+
VNA_AUTH_REQ_ID="arid/ec53bef5-f41b-406e-95b5-fd2b80fd7a94"
64+
VNA_AUTH_CODE="12a56g213ad69asdjfc322"
65+
NV_MSISDN="+99012345678"
66+
NV_REDIRECT_URI="https://example.org/webhooks/number-verification/redicrect"
67+
SIMSWAP_MSISDN="99012345677"
68+
SIMSWAP_MAX_AGE="240"
69+
70+
# Number Insight
71+
INSIGHT_NUMBER="447123456789"
72+
INSIGHT_CALLBACK_URL="https://example.org/webhooks/insight"
73+
74+
# Numbers
75+
NUMBER_MSISDN="447700900000"
76+
NUMBER_COUNTRY_CODE="GB"
77+
NUMBER_TYPE="mobile-lvn"
78+
NUMBER_FEATURES="VOICE,SMS"
79+
NUMBER_SEARCH_CRITERIA="234"
80+
NUMBER_SEARCH_PATTERN="1"
81+
NUMBER_SMS_CALLBACK_URL="https://example.org/webhooks/inbound-sms"
82+
NUMBER_VOICE_CALLBACK_URL="https://example.org/webhooks/voice/status"
83+
NUMBER_VOICE_CALLBACK_TYPE="tel"
84+
NUMBER_VOICE_STATUS_CALLBACK_URL="https://example.org/webhooks/voice/status"
85+
86+
# Pricing
87+
PRICING_COUNTRY_CODE="GB"
88+
PRICING_DIAL_PREFIX="44"
89+
90+
# Redact
91+
VONAGE_REDACT_ID="abcdef09-8765-4321-8cde-0123456789ab"
92+
93+
# SMS
94+
SMS_TO_NUMBER="447700900000"
95+
96+
# Subaccounts
97+
SUBACCOUNT_KEY="4d3c2b1a"
98+
SUBACCOUNT_NAME="Expenses Department Subaccount"
99+
SUBACCOUNT_SECRET="0987654321abcdef"
100+
SUBACCOUNT_BALANCE_AMOUNT="100.00"
101+
SUBACCOUNT_CREDIT_AMOUNT="50.00"
102+
SUBACCOUNT_START_DATE="2025-01-01T00:00:00Z"
103+
104+
# Users
105+
USER_ID="USR-abcdef09-8765-4321-8cde-0123456789ab"
106+
USER_NAME="test_user"
107+
USER_DISPLAY_NAME="My Test User"
108+
USER_NEW_NAME="new_test_username"
109+
USER_NEW_DISPLAY_NAME="My New Test User"
110+
WEBSOCKET_URI="wss://example.com/socket"
111+
SIP_SECURE_URI="sip:[email protected];transport=tls"
112+
SIP_USERNAME="myUserName"
113+
SIP_PASSWORD="P@ssw0rd"
114+
VBC_EXTENSION="123"
115+
116+
# Verify
117+
VERIFY_NUMBER="447700900000"
118+
VERIFY_BRAND_NAME="Vonage"
119+
VERIFY_PAYEE_NAME="Clientele"
120+
VERIFY_AMOUNT="12.34"
121+
VERIFY_REQUEST_ID="abcdef09876543218cde0123456789ab"
122+
VERIFY_CODE="1234"
123+
VERIFY_WORKFLOW_ID="5"
124+
VERIFY_PSD2_WORKFLOW_ID="6"
125+
VERIFY_TO_EMAIL="[email protected]"
126+
VERIFY_FROM_EMAIL="[email protected]"
127+
VERIFY_WHATSAPP_NUMBER="14157386102"
128+
VERIFY_TEMPLATE_NAME="verify"
129+
VERIFY_TEMPLATE_ID="bcdef09-8765-4321-8cde-0123456789ab"
130+
VERIFY_TEMPLATE_FRAGMENT_ID="aaaaaaaa-bbbb-4ccc-8ddd-0123456789ab"
131+
132+
# Voice
133+
VOICE_CALL_ID="aaaaaaaa-bbbb-4ccc-8ddd-0123456789ab"
134+
VOICE_TO_NUMBER="447700900000"
135+
VOICE_TEXT="Hello from Vonage! Would you like to learn more?"
136+
VOICE_LANGUAGE="en-US"
137+
VOICE_DTMF_DIGITS="2468#"
138+
VOICE_CONFERENCE_NAME="My conference call room"
139+
VOICE_NCCO_URL="https://nexmo-community.github.io/ncco-examples/talk.json"
140+
VOICE_ANSWER_URL="https://nexmo-community.github.io/ncco-examples/transfer.json"
141+
VOICE_STREAM_URL="https://nexmo-community.github.io/ncco-examples/silent-loop.json"
142+
VOICE_RECORDING_URL="https://api.nexmo.com/v1/files/bbbbbbbb-aaaa-cccc-dddd-0123456789ab.wav"

.github/CODEOWNERS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Tooling Team
2+
* @Vonage/server-sdk
3+
* @SMadani

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
1. Go to '...'
16+
2. Click on '....'
17+
3. Scroll down to '....'
18+
4. See error
19+
20+
**Expected behavior**
21+
A clear and concise description of what you expected to happen.
22+
23+
**Screenshots**
24+
If applicable, add screenshots to help explain your problem.
25+
26+
**Request/Response**
27+
If applicable, please provide the request used and the response
28+
29+
**Java Version**
30+
- Version:
31+
32+
**Java SDK Version**
33+
- Version:
34+
35+
**Additional context/ Error Log**
36+
Add any other context about the problem here.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
_Describe your changes here_
2+
3+
## Contribution Checklist
4+
* [ ] Unit tests!
5+
* [ ] Updated [CHANGELOG.md](CHANGELOG.md)
6+
* [ ] My name is in [CONTRIBUTORS.md](CONTRIBUTORS.md)

.github/workflows/build.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Build
2+
on:
3+
push:
4+
branches:
5+
- main
6+
pull_request:
7+
8+
permissions: read-all
9+
10+
jobs:
11+
build:
12+
permissions:
13+
contents: read
14+
checks: write
15+
statuses: write
16+
runs-on: ${{ matrix.os }}
17+
strategy:
18+
fail-fast: true
19+
matrix:
20+
java: [11, 17, 21]
21+
os: [ubuntu-latest, macos-latest, windows-latest]
22+
steps:
23+
- name: Checkout the repo
24+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
25+
- name: Setup Java
26+
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12
27+
with:
28+
distribution: 'temurin'
29+
java-version: ${{ matrix.java }}
30+
- name: Setup Gradle
31+
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b
32+
- name: Build with Gradle
33+
run: ./gradlew build

.github/workflows/codeql.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: "CodeQL"
2+
on:
3+
push:
4+
branches: [ "main" ]
5+
pull_request:
6+
branches: [ "main" ]
7+
schedule:
8+
- cron: '35 2 * * 2'
9+
10+
permissions: read-all
11+
12+
jobs:
13+
analyze:
14+
name: Analyze (${{ matrix.language }})
15+
runs-on: 'ubuntu-latest'
16+
permissions:
17+
security-events: write
18+
packages: read
19+
actions: read
20+
contents: read
21+
22+
strategy:
23+
fail-fast: false
24+
matrix:
25+
include:
26+
- language: java-kotlin
27+
build-mode: autobuild
28+
steps:
29+
- name: Checkout repository
30+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
31+
- name: Initialize CodeQL
32+
uses: github/codeql-action/init@dd746615b3b9d728a6a37ca2045b68ca76d4841a
33+
with:
34+
languages: ${{ matrix.language }}
35+
build-mode: ${{ matrix.build-mode }}
36+
- name: Perform CodeQL Analysis
37+
uses: github/codeql-action/analyze@dd746615b3b9d728a6a37ca2045b68ca76d4841a
38+
with:
39+
category: "/language:${{matrix.language}}"

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
.mtj.tmp/
1212

1313
# Package Files #
14-
*.jar
1514
*.war
1615
*.ear
1716
*.zip

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Vonage Quickstart Examples for Java
22

3+
[![Build Status](https://github.com/Vonage/vonage-java-code-snippets/actions/workflows/build.yml/badge.svg)](https://github.com/Vonage/vonage-kotlin-sdk/actions/workflows/build.yml)
4+
![CodeQL](https://github.com/Vonage/vonage-java-code-snippets/actions/workflows/codeql.yml/badge.svg)
5+
![SLOC](https://sloc.xyz/github/Vonage/vonage-java-code-snippets)
6+
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)
7+
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8+
[![Community Slack](https://img.shields.io/badge/Slack-4A154B?style=flat&logo=slack&logoColor=white)](https://developer.vonage.com/community/slack)
9+
310
<img src="https://developer.nexmo.com/assets/images/Vonage_Nexmo.svg" height="48px" alt="Nexmo is now known as Vonage" />
411

512
Quickstarts also available for:

build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ java {
1313
}
1414

1515
dependencies {
16-
implementation 'com.vonage:server-sdk:8.15.1'
17-
implementation 'com.vonage:jwt:2.0.0'
18-
implementation 'com.sparkjava:spark-core:2.9.4'
19-
implementation 'com.fasterxml.jackson.core:jackson-databind:2.18.2'
16+
implementation 'com.vonage:server-sdk:8.+'
17+
implementation 'com.vonage:jwt:2.+'
18+
implementation 'com.sparkjava:spark-core:2.+'
19+
implementation 'com.fasterxml.jackson.core:jackson-databind:2.+'
2020
}
2121

2222
tasks.register('fatJar', Jar) {

gradle/wrapper/gradle-wrapper.jar

42.6 KB
Binary file not shown.

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
1+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)