Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
ae7f6a8
Handwritten classic shadow request-response client and sandbox sample…
Jan 14, 2025
7f88ec2
Remove copy of old README
Jan 14, 2025
168d54f
Sandbox readme + sample fix for property removal
Jan 14, 2025
bc442db
Simplification
Jan 28, 2025
9253301
Initial codegen checkpoint
Jan 28, 2025
efe223d
Updates
Jan 28, 2025
70b9176
Compile fixes
Jan 29, 2025
0368746
Shadow and Jobs tests
Jan 31, 2025
b69ac3d
Remove stub tests
Feb 3, 2025
fdd48a7
Pom updates; don't forget to revert local CRT version reference befor…
Feb 3, 2025
8a41c8a
Initial identity tests
bretambrose Feb 3, 2025
99c85a7
Csr tests
bretambrose Feb 3, 2025
0cc8bb2
Merge branch 'main' into RequestResponseWorkspace
Feb 20, 2025
cc994c3
Update CRT to one that supports MQTT request response
Feb 20, 2025
be75546
Android CRT and doc comment updates
Feb 21, 2025
f88769d
Disable all-test on java compat
Feb 21, 2025
82263f7
CI is such a mess; why do we have three ways of doing the same thing?
Feb 21, 2025
c639459
Use builder env variables
Feb 21, 2025
ffaccf8
Forced to use this nightmare of a CI setup
Feb 21, 2025
801b8a5
missing keyword
Feb 24, 2025
cd3e123
Add jobs and identity to java-compat jobs
Feb 24, 2025
9c39cd5
Add service tests to windows and linux CI jobs too
Feb 24, 2025
9d10355
Specify bash as shell for Windows jobs
Feb 24, 2025
08abedf
Add topic to serialization errors
Mar 4, 2025
f1e5431
Backport delete job limit exception handling
Mar 4, 2025
bfa923a
Sleep on hitting delete limit exceptions
Mar 4, 2025
6c84edd
Remove never-succeeding greengrass tests
Mar 4, 2025
60de317
ubuntu 20 -> 22
Mar 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 42 additions & 85 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
- 'docs'

env:
BUILDER_VERSION: v0.9.60
BUILDER_VERSION: v0.9.75
BUILDER_SOURCE: releases
BUILDER_HOST: https://d19elf31gohf1l.cloudfront.net
PACKAGE_NAME: aws-iot-device-sdk-java-v2
Expand All @@ -26,8 +26,6 @@ env:
CI_SHADOW_ROLE: arn:aws:iam::180635532705:role/CI_Shadow_Role
CI_JOBS_ROLE: arn:aws:iam::180635532705:role/CI_Jobs_Role
CI_FLEET_PROVISIONING_ROLE: arn:aws:iam::180635532705:role/service-role/CI_FleetProvisioning_Role
CI_GREENGRASS_ROLE: arn:aws:iam::180635532705:role/CI_Greengrass_Role
CI_GREENGRASS_INSTALLER_ROLE: arn:aws:iam::180635532705:role/CI_GreengrassInstaller_Role
CI_DEVICE_ADVISOR: arn:aws:iam::180635532705:role/CI_DeviceAdvisor_Role
CI_X509_ROLE: arn:aws:iam::180635532705:role/CI_X509_Role
CI_MQTT5_ROLE: arn:aws:iam::180635532705:role/CI_MQTT5_Role
Expand Down Expand Up @@ -94,7 +92,7 @@ jobs:
# At run time we have to force armv7 (via environment variable) in order to achieve proper resource path
# resolution.
linux-musl-armv7:
runs-on: ubuntu-20.04 # latest
runs-on: ubuntu-22.04 # latest
permissions:
id-token: write # This is required for requesting the JWT
steps:
Expand All @@ -116,7 +114,7 @@ jobs:
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-alpine-3.16-armv7 build -p ${{ env.PACKAGE_NAME }}

raspberry:
runs-on: ubuntu-20.04 # latest
runs-on: ubuntu-22.04 # latest
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -167,18 +165,26 @@ jobs:
with:
role-to-assume: ${{ env.CI_MQTT5_ROLE }}
aws-region: ${{ env.AWS_DEFAULT_REGION }}
- name: Service tests
shell: bash
run: |
source utils/test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt us-east-1
mvn test -Dtest=ShadowTests -Dsurefire.failIfNoSpecifiedTests=false
mvn test -Dtest=JobsTests -Dsurefire.failIfNoSpecifiedTests=false
mvn test -Dtest=IdentityTests -Dsurefire.failIfNoSpecifiedTests=false
source utils/test_cleanup.sh
- name: MQTT311 tests
shell: bash
run: |
source utils/mqtt5_test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt us-east-1
source utils/test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt us-east-1
mvn test -Dtest=MqttBuilderTest -Dsurefire.failIfNoSpecifiedTests=false
source utils/mqtt5_test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt cleanup
source utils/test_cleanup.sh
- name: MQTT5 tests
shell: bash
run: |
source utils/mqtt5_test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt us-east-1
source utils/test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt us-east-1
mvn test -Dtest=Mqtt5BuilderTest -Dsurefire.failIfNoSpecifiedTests=false
source utils/mqtt5_test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt cleanup
source utils/test_cleanup.sh
- name: Running samples in CI setup
run: |
python -m pip install boto3
Expand Down Expand Up @@ -244,16 +250,23 @@ jobs:
with:
role-to-assume: ${{ env.CI_MQTT5_ROLE }}
aws-region: ${{ env.AWS_DEFAULT_REGION }}
- name: Service tests
run: |
source utils/test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt us-east-1
mvn test -Dtest=ShadowTests -Dsurefire.failIfNoSpecifiedTests=false
mvn test -Dtest=JobsTests -Dsurefire.failIfNoSpecifiedTests=false
mvn test -Dtest=IdentityTests -Dsurefire.failIfNoSpecifiedTests=false
source utils/test_cleanup.sh
- name: MQTT311 tests
run: |
source utils/mqtt5_test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt us-east-1
source utils/test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt us-east-1
mvn test -Dtest=MqttBuilderTest -DfailIfNoTests=false -Dsurefire.failIfNoSpecifiedTests=false
source utils/mqtt5_test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt cleanup
source utils/test_cleanup.sh
- name: MQTT5 tests
run: |
source utils/mqtt5_test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt us-east-1
source utils/test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt us-east-1
mvn test -Dtest=Mqtt5BuilderTest -DfailIfNoTests=false -Dsurefire.failIfNoSpecifiedTests=false
source utils/mqtt5_test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt cleanup
source utils/test_cleanup.sh
- name: Running samples in CI setup
run: |
python3 -m venv .venv
Expand Down Expand Up @@ -319,23 +332,30 @@ jobs:
- name: Build ${{ env.PACKAGE_NAME }} + consumers
run: |
java -version
mvn -B test -Daws.crt.debugnative=true
mvn compile
mvn install -Dmaven.test.skip
- name: configure AWS credentials (MQTT5)
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: ${{ env.CI_MQTT5_ROLE }}
aws-region: ${{ env.AWS_DEFAULT_REGION }}
- name: Service tests
run: |
source utils/test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt us-east-1
mvn test -Dtest=ShadowTests -Dsurefire.failIfNoSpecifiedTests=false
mvn test -Dtest=JobsTests -Dsurefire.failIfNoSpecifiedTests=false
mvn test -Dtest=IdentityTests -Dsurefire.failIfNoSpecifiedTests=false
source utils/test_cleanup.sh
- name: MQTT311 tests
run: |
source utils/mqtt5_test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt us-east-1
source utils/test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt us-east-1
mvn test -Dtest=MqttBuilderTest -Dsurefire.failIfNoSpecifiedTests=false
source utils/mqtt5_test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt cleanup
source utils/test_cleanup.sh
- name: MQTT5 tests
run: |
source utils/mqtt5_test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt us-east-1
source utils/test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt us-east-1
mvn test -Dtest=Mqtt5BuilderTest -Dsurefire.failIfNoSpecifiedTests=false
source utils/mqtt5_test_setup.sh s3://iot-sdk-ci-bucket-us-east1/IotUsProdMqtt5EnvironmentVariables.txt cleanup
source utils/test_cleanup.sh
- name: Running samples in CI setup
run: |
python3 -m pip install boto3
Expand Down Expand Up @@ -366,7 +386,7 @@ jobs:

android-device-farm:
name: Android Device Farm
runs-on: ubuntu-20.04 # latest
runs-on: ubuntu-22.04 # latest
permissions:
# These permissions needed to interact with GitHub's OIDC Token endpoint
id-token: write # This is required for requesting the JWT
Expand Down Expand Up @@ -430,7 +450,7 @@ jobs:

# check that docs can still build
check-docs:
runs-on: ubuntu-20.04 # latest
runs-on: ubuntu-22.04 # latest
steps:
- uses: actions/checkout@v2
- name: Check docs
Expand All @@ -440,15 +460,15 @@ jobs:

# ensure that aws-crt version is consistent among different files
consistent-crt-version:
runs-on: ubuntu-20.04 # latest
runs-on: ubuntu-22.04 # latest
steps:
- uses: actions/checkout@v2
- name: Consistent aws-crt version
run: |
./update-crt.py --check_consistency

check-codegen-edits:
runs-on: ubuntu-20.04 # latest
runs-on: ubuntu-22.04 # latest
steps:
- uses: actions/checkout@v2
with:
Expand Down Expand Up @@ -650,66 +670,3 @@ jobs:
- name: run MQTT5 Shared Subscription sample
run: |
python3 ./utils/run_in_ci.py --file ./.github/workflows/ci_run_mqtt5_shared_subscription_cfg.json

# Runs the Greengrass samples
linux-greengrass-tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
version:
- 17
permissions:
id-token: write # This is required for requesting the JWT
steps:
- name: Checkout Sources
uses: actions/checkout@v2
- name: Setup Java
uses: actions/setup-java@v2
with:
distribution: temurin
java-version: ${{ matrix.version }}
cache: maven
- name: Build ${{ env.PACKAGE_NAME }} + consumers
run: |
java -version
mvn install -Dmaven.test.skip
- name: Install Greengrass Development Kit
run: |
python3 -m pip install awsiotsdk
python3 -m pip install -U git+https://github.com/aws-greengrass/[email protected]
- name: configure AWS credentials (Greengrass)
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: ${{ env.CI_GREENGRASS_INSTALLER_ROLE }}
aws-region: ${{ env.AWS_DEFAULT_REGION }}
- name: Build and run Greengrass basic discovery sample
working-directory: ./tests/greengrass/basic_discovery
run: |
gdk component build
gdk test-e2e build
gdk test-e2e run
- name: Show logs
working-directory: ./tests/greengrass/basic_discovery
# Print logs unconditionally to provide more details on Greengrass run even if the test failed.
if: always()
run: |
echo "=== greengrass.log"
cat testResults/gg*/greengrass.log
echo "=== software.amazon.awssdk.sdk-gg-test-discovery.log"
cat testResults/gg*/software.amazon.awssdk.sdk-gg-test-discovery.log
- name: Build and run Greengrass IPC sample
working-directory: ./tests/greengrass/ipc
run: |
gdk component build
gdk test-e2e build
gdk test-e2e run
- name: Show logs
working-directory: ./tests/greengrass/ipc
# Print logs unconditionally to provide more details on Greengrass run even if the test failed.
if: always()
run: |
echo "=== greengrass.log"
cat testResults/gg*/greengrass.log
echo "=== software.amazon.awssdk.sdk-gg-ipc.log"
cat testResults/gg*/software.amazon.awssdk.sdk-gg-ipc.log
2 changes: 1 addition & 1 deletion android/iotdevicesdk/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ repositories {
}

dependencies {
api 'software.amazon.awssdk.crt:aws-crt-android:0.33.5'
api 'software.amazon.awssdk.crt:aws-crt-android:0.35.0'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
implementation 'org.slf4j:slf4j-api:1.7.30'
implementation 'com.google.code.gson:gson:2.9.0'
Expand Down
1 change: 1 addition & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
<module>samples/CustomKeyOpsConnect</module>
<module>samples/WindowsCertConnect</module>
<module>samples/Shadow</module>
<module>samples/ShadowV2</module>
<module>samples/FleetProvisioning</module>
<module>samples/Mqtt5/PubSub</module>
<module>samples/Mqtt5/SharedSubscription</module>
Expand Down
Loading
Loading