Skip to content

Commit d56a3e8

Browse files
committed
Release v1.1.0
1 parent d5ae3ff commit d56a3e8

File tree

207 files changed

+19209
-3016
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

207 files changed

+19209
-3016
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
name: Build Docker
5+
6+
inputs:
7+
dist-name:
8+
required: true
9+
push-role:
10+
required: true
11+
12+
runs:
13+
using: "composite"
14+
steps:
15+
- uses: docker/setup-qemu-action@v2
16+
- uses: docker/setup-buildx-action@v2
17+
- uses: aws-actions/configure-aws-credentials@v4
18+
if:
19+
github.repository == 'aws/aws-iot-fleetwise-edge' && (github.ref_type == 'tag' || github.ref
20+
== 'refs/heads/main')
21+
with:
22+
role-to-assume: ${{ inputs.push-role }}
23+
aws-region: us-east-1
24+
- uses: aws-actions/amazon-ecr-login@v2
25+
if:
26+
github.repository == 'aws/aws-iot-fleetwise-edge' && (github.ref_type == 'tag' || github.ref
27+
== 'refs/heads/main')
28+
with:
29+
registry-type: public
30+
- id: meta
31+
uses: docker/metadata-action@v4
32+
with:
33+
images: public.ecr.aws/aws-iot-fleetwise-edge/${{ inputs.dist-name }}
34+
- uses: docker/build-push-action@v3
35+
with:
36+
context: .
37+
file: "./tools/container/Dockerfile"
38+
push:
39+
${{ github.repository == 'aws/aws-iot-fleetwise-edge' && ( github.ref_type == 'tag' ||
40+
github.ref == 'refs/heads/main' ) }}
41+
tags: ${{ steps.meta.outputs.tags }}
42+
labels: ${{ steps.meta.outputs.labels }}
43+
platforms: linux/amd64,linux/arm64,linux/arm/v7
44+
build-args: DIST_NAME=${{ inputs.dist-name }}
45+
cache-from: type=gha
46+
cache-to: type=gha,mode=max

.github/template/fwe-build/action.yml

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ inputs:
88
required: true
99
upload-arch:
1010
required: true
11+
extra-options:
12+
required: false
13+
dist-name:
14+
required: true
1115
cache-paths:
1216
required: true
1317
dist-files:
@@ -21,51 +25,60 @@ runs:
2125
uses: actions/cache@v3
2226
with:
2327
path: cache
24-
key: deps-${{ inputs.build-arch }}-${{ hashFiles('tools/install-deps-*.sh') }}
28+
# prettier-ignore
29+
key: ${{ inputs.dist-name }}-${{ inputs.build-arch }}-${{ hashFiles('tools/install-deps-*.sh') }}
2530

2631
- name: install-deps
2732
shell: bash
2833
run: |
34+
IFS=":"
35+
CACHE_PATHS=${{ inputs.cache-paths }}
2936
if [ -d cache ]; then
30-
sudo cp -r cache/* /usr/local
37+
for P in ${CACHE_PATHS}; do
38+
sudo mkdir -p `dirname ${P}`
39+
sudo cp -r cache${P} ${P}
40+
done
3141
fi
32-
sudo ./tools/install-deps-${{ inputs.build-arch }}.sh
42+
sudo ./tools/install-deps-${{ inputs.build-arch }}.sh ${{ inputs.extra-options }}
3343
if [ ! -d cache ]; then
34-
mkdir cache
35-
IFS=":"
36-
for P in ${{ inputs.cache-paths }}; do
37-
cp -r ${P} cache
44+
for P in ${CACHE_PATHS}; do
45+
mkdir -p cache`dirname ${P}`
46+
cp -r ${P} cache${P}
3847
done
3948
fi
4049
4150
- name: build
4251
shell: bash
4352
run: |
44-
./tools/build-fwe-${{ inputs.build-arch }}.sh
53+
./tools/build-fwe-${{ inputs.build-arch }}.sh ${{ inputs.extra-options }}
4554
./tools/build-dist.sh ${{ inputs.dist-files }}
4655
# If the output file changes, make sure to update the upload-asset job below
47-
mv build/aws-iot-fleetwise-edge.tar.gz build/aws-iot-fleetwise-edge-${{ inputs.upload-arch }}.tar.gz
56+
mv build/aws-iot-fleetwise-edge.tar.gz build/${{ inputs.dist-name }}-${{ inputs.upload-arch }}.tar.gz
57+
if [ "${{ inputs.dist-name }}" == "aws-iot-fleetwise-edge-ros2" ]; then
58+
tar --exclude /opt/ros/galactic/include --exclude /opt/ros/galactic/cmake -zcf build/opt.tar.gz /opt/ros
59+
fi
4860
4961
- name: unit-test
5062
shell: bash
5163
if: inputs.build-arch == 'native'
5264
run: |
53-
cd build
54-
CTEST_OUTPUT_ON_FAILURE=1 ctest
65+
./tools/test-fwe.sh ${{ inputs.extra-options }}
5566
5667
- name: upload-artifacts
5768
uses: actions/upload-artifact@v3
5869
with:
59-
name: build-${{ inputs.upload-arch }}
70+
name: ${{ inputs.dist-name }}-${{ inputs.upload-arch }}
6071
path: |
6172
build/aws-iot-fleetwise-edge
62-
build/aws-iot-fleetwise-edge-${{ inputs.upload-arch }}.tar.gz
73+
build/iotfleetwise/aws-iot-fleetwise-edge
74+
build/${{ inputs.dist-name }}-${{ inputs.upload-arch }}.tar.gz
6375
build/Testing/Temporary/
6476
build/**/report-*.xml
77+
build/opt.tar.gz
6578
6679
- name: upload-asset
6780
if: github.ref_type == 'tag'
6881
shell: bash
6982
run: |
7083
RELEASE_VERSION="${GITHUB_REF/refs\/tags\//}"
71-
gh release upload ${RELEASE_VERSION} build/aws-iot-fleetwise-edge-${{ inputs.upload-arch }}.tar.gz
84+
gh release upload ${RELEASE_VERSION} build/${{ inputs.dist-name }}-${{ inputs.upload-arch }}.tar.gz

.github/workflows/ci.yml

Lines changed: 80 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ jobs:
3737
with:
3838
build-arch: "native"
3939
upload-arch: "amd64"
40+
dist-name: "aws-iot-fleetwise-edge"
4041
cache-paths: /usr/local/x86_64-linux-gnu
4142
dist-files: build/aws-iot-fleetwise-edge:.
4243

@@ -48,6 +49,7 @@ jobs:
4849
with:
4950
build-arch: "cross-arm64"
5051
upload-arch: "arm64"
52+
dist-name: "aws-iot-fleetwise-edge"
5153
cache-paths: /usr/local/aarch64-linux-gnu:/usr/local/x86_64-linux-gnu
5254
dist-files: build/aws-iot-fleetwise-edge:.
5355

@@ -59,9 +61,50 @@ jobs:
5961
with:
6062
build-arch: "cross-armhf"
6163
upload-arch: "armhf"
64+
extra-options: "--with-iwave-gps-support"
65+
dist-name: "aws-iot-fleetwise-edge"
6266
cache-paths: /usr/local/arm-linux-gnueabihf:/usr/local/x86_64-linux-gnu
6367
dist-files: build/aws-iot-fleetwise-edge:.
6468

69+
build-ros2-amd64:
70+
runs-on: ubuntu-20.04
71+
steps:
72+
- uses: actions/checkout@v3
73+
- uses: "./.github/template/fwe-build"
74+
with:
75+
build-arch: "native"
76+
upload-arch: "amd64"
77+
extra-options: "--with-ros2-support"
78+
dist-name: "aws-iot-fleetwise-edge-ros2"
79+
cache-paths: /usr/local/x86_64-linux-gnu:/opt/ros
80+
dist-files: build/iotfleetwise/aws-iot-fleetwise-edge:.
81+
82+
build-ros2-arm64:
83+
runs-on: ubuntu-20.04
84+
steps:
85+
- uses: actions/checkout@v3
86+
- uses: "./.github/template/fwe-build"
87+
with:
88+
build-arch: "cross-arm64"
89+
upload-arch: "arm64"
90+
extra-options: "--with-ros2-support"
91+
dist-name: "aws-iot-fleetwise-edge-ros2"
92+
cache-paths: /usr/local/aarch64-linux-gnu:/usr/local/x86_64-linux-gnu:/opt/ros
93+
dist-files: build/iotfleetwise/aws-iot-fleetwise-edge:.
94+
95+
build-ros2-armhf:
96+
runs-on: ubuntu-20.04
97+
steps:
98+
- uses: actions/checkout@v3
99+
- uses: "./.github/template/fwe-build"
100+
with:
101+
build-arch: "cross-armhf"
102+
upload-arch: "armhf"
103+
extra-options: "--with-ros2-support"
104+
dist-name: "aws-iot-fleetwise-edge-ros2"
105+
cache-paths: /usr/local/arm-linux-gnueabihf:/usr/local/x86_64-linux-gnu:/opt/ros
106+
dist-files: build/iotfleetwise/aws-iot-fleetwise-edge:.
107+
65108
build-android:
66109
runs-on: ubuntu-20.04
67110
steps:
@@ -70,6 +113,7 @@ jobs:
70113
with:
71114
build-arch: "cross-android"
72115
upload-arch: "android"
116+
dist-name: "aws-iot-fleetwise-edge"
73117
cache-paths: /usr/local/x86_64-linux-android:/usr/local/aarch64-linux-android:/usr/local/armv7a-linux-androideabi:/usr/local/x86_64-linux-gnu
74118
dist-files:
75119
build/x86_64/libaws-iot-fleetwise-edge.so:x86_64
@@ -133,38 +177,44 @@ jobs:
133177
- uses: actions/download-artifact@v3
134178
- name: Move artifacts to match buildx TARGETPLATFORM structure
135179
run: |
136-
mkdir -p linux/arm
137-
mv build-amd64 linux/amd64
138-
mv build-arm64 linux/arm64
139-
mv build-armhf linux/arm/v7
140-
find linux -name aws-iot-fleetwise-edge -exec chmod +x {} \;
141-
- uses: docker/setup-qemu-action@v2
142-
- uses: docker/setup-buildx-action@v2
143-
- uses: aws-actions/configure-aws-credentials@v2
144-
if: github.ref_type == 'tag' || github.ref == 'refs/heads/main'
145-
with:
146-
role-to-assume: ${{ secrets.PUBLIC_ECR_PUSH_ROLE }}
147-
aws-region: us-east-1
148-
- uses: aws-actions/amazon-ecr-login@v1
149-
if: github.ref_type == 'tag' || github.ref == 'refs/heads/main'
180+
mkdir -p linux/amd64
181+
mv aws-iot-fleetwise-edge-amd64/aws-iot-fleetwise-edge-amd64.tar.gz linux/amd64/aws-iot-fleetwise-edge.tar.gz
182+
tar -zcf linux/amd64/opt.tar.gz -T /dev/null # Create empty tar.gz
183+
mkdir -p linux/arm64
184+
mv aws-iot-fleetwise-edge-arm64/aws-iot-fleetwise-edge-arm64.tar.gz linux/arm64/aws-iot-fleetwise-edge.tar.gz
185+
tar -zcf linux/arm64/opt.tar.gz -T /dev/null # Create empty tar.gz
186+
mkdir -p linux/arm/v7
187+
mv aws-iot-fleetwise-edge-armhf/aws-iot-fleetwise-edge-armhf.tar.gz linux/arm/v7/aws-iot-fleetwise-edge.tar.gz
188+
tar -zcf linux/arm/v7/opt.tar.gz -T /dev/null # Create empty tar.gz
189+
- uses: "./.github/template/docker-build"
150190
with:
151-
registry-type: public
152-
- id: meta
153-
uses: docker/metadata-action@v4
154-
with:
155-
images: public.ecr.aws/aws-iot-fleetwise-edge/aws-iot-fleetwise-edge
156-
- uses: docker/build-push-action@v3
191+
dist-name: aws-iot-fleetwise-edge
192+
push-role: ${{ secrets.PUBLIC_ECR_PUSH_ROLE }}
193+
194+
build-docker-ros2:
195+
runs-on: ubuntu-20.04
196+
needs:
197+
- build-ros2-amd64
198+
- build-ros2-arm64
199+
- build-ros2-armhf
200+
steps:
201+
- uses: actions/checkout@v3
202+
- uses: actions/download-artifact@v3
203+
- name: Move artifacts to match buildx TARGETPLATFORM structure
204+
run: |
205+
mkdir -p linux/amd64
206+
mv aws-iot-fleetwise-edge-ros2-amd64/aws-iot-fleetwise-edge-ros2-amd64.tar.gz linux/amd64/aws-iot-fleetwise-edge.tar.gz
207+
mv aws-iot-fleetwise-edge-ros2-amd64/opt.tar.gz linux/amd64/opt.tar.gz
208+
mkdir -p linux/arm64
209+
mv aws-iot-fleetwise-edge-ros2-arm64/aws-iot-fleetwise-edge-ros2-arm64.tar.gz linux/arm64/aws-iot-fleetwise-edge.tar.gz
210+
mv aws-iot-fleetwise-edge-ros2-arm64/opt.tar.gz linux/arm64/opt.tar.gz
211+
mkdir -p linux/arm/v7
212+
mv aws-iot-fleetwise-edge-ros2-armhf/aws-iot-fleetwise-edge-ros2-armhf.tar.gz linux/arm/v7/aws-iot-fleetwise-edge.tar.gz
213+
mv aws-iot-fleetwise-edge-ros2-armhf/opt.tar.gz linux/arm/v7/opt.tar.gz
214+
- uses: "./.github/template/docker-build"
157215
with:
158-
context: .
159-
file: "./tools/container/Dockerfile"
160-
push:
161-
${{ github.repository == 'aws/aws-iot-fleetwise-edge' && ( github.ref_type == 'tag' ||
162-
github.ref == 'refs/heads/main' ) }}
163-
tags: ${{ steps.meta.outputs.tags }}
164-
labels: ${{ steps.meta.outputs.labels }}
165-
platforms: linux/amd64,linux/arm64,linux/arm/v7
166-
cache-from: type=gha
167-
cache-to: type=gha,mode=max
216+
dist-name: aws-iot-fleetwise-edge-ros2
217+
push-role: ${{ secrets.PUBLIC_ECR_PUSH_ROLE }}
168218

169219
copy-cfn-templates:
170220
runs-on: ubuntu-20.04

.pre-commit-config.yaml

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ repos:
99
rev: v4.4.0
1010
hooks:
1111
- id: trailing-whitespace
12+
exclude: static/.*\.[js|css]
1213
- id: end-of-file-fixer
14+
exclude: static/.*\.[js|css]
1315
- id: mixed-line-ending
1416
args: [--fix=lf]
1517
- id: check-added-large-files
@@ -94,6 +96,7 @@ repos:
9496
rev: v2.7.1
9597
hooks:
9698
- id: prettier
99+
exclude: static/.*\.[js|css]
97100
- repo: local
98101
hooks:
99102
- id: validate-static-config
@@ -104,7 +107,7 @@ repos:
104107
language: python
105108
files: "configuration/static-config.json|tools/android-app/app/src/main/assets/config-0.json"
106109
types: [json]
107-
additional_dependencies: ["check-jsonschema==0.25.0"]
110+
additional_dependencies: ["check-jsonschema==0.25.0", "urllib3==1.26.17"]
108111
verbose: true
109112
- id: validate-persistency-metadata
110113
name: validate-persistency-metadata
@@ -114,7 +117,7 @@ repos:
114117
language: python
115118
files: "interfaces/persistency/examples/persistencyMetadataFormat.json"
116119
types: [json]
117-
additional_dependencies: ["check-jsonschema==0.25.0"]
120+
additional_dependencies: ["check-jsonschema==0.25.0", "urllib3==1.26.17"]
118121
verbose: true
119122
- id: validate-build-files
120123
name: validate-build-files
@@ -127,3 +130,14 @@ repos:
127130
exclude: "^test/unit/support"
128131
types: [c++]
129132
verbose: true
133+
- id: forbid-tabs
134+
name: forbid-tabs
135+
language: pygrep
136+
entry: "\\t"
137+
types: [text]
138+
exclude: \.dbc|static/.*\.[js|css]
139+
- id: forbid-non-ascii-chars
140+
name: forbid-non-ascii-chars
141+
language: pygrep
142+
entry: "[\\x80-\\xFF]"
143+
types: [text]

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
# Change Log
22

3+
## v1.1.0 (2023-11-26)
4+
5+
Features:
6+
7+
- Add support for 'vision system data', with initial support for collection from
8+
[ROS2](https://github.com/ros2). This enables collection of complex data types including
9+
structures, arrays and strings. Nested structures and arrays of structures are also supported.
10+
- **Known limitations:**
11+
- When no internet connection is available, collected vision system data is currently dropped,
12+
i.e. it is not persisted to the filesystem for later upload when connectivity is restored.
13+
- When the upload of vision system data to S3 fails, e.g. due to poor connectivity or throttling
14+
by S3, currently only one retry is attempted.
15+
16+
Improvements:
17+
18+
- Update AWS C++ SDK to v1.11.177.
19+
- Update Yocto reference to kirkstone and NXP Linux BSP 37.0.
20+
- Switch to MQTT 5 client for better error messages. This is fully backward compatible with the
21+
previous client. Please note that currently we are not using nor supporting any MQTT 5 specific
22+
feature besides reason codes.
23+
- When a CAN interface goes down at runtime, FWE will now exit with with an error.
24+
- Enabled `FWE_FEATURE_IWAVE_GPS` for the GitHub `armhf` pre-built-binary, and added auto-detection
25+
of the iWave GPS for backwards compatibility with configuration files without the
26+
`.staticConfig.iWaveGpsExample` section.
27+
328
## v1.0.8 (2023-09-25)
429

530
Bug fixes:

0 commit comments

Comments
 (0)