Skip to content

Commit

Permalink
Release v1.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
hefroy committed Nov 27, 2023
1 parent d5ae3ff commit d56a3e8
Show file tree
Hide file tree
Showing 207 changed files with 19,209 additions and 3,016 deletions.
46 changes: 46 additions & 0 deletions .github/template/docker-build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0

name: Build Docker

inputs:
dist-name:
required: true
push-role:
required: true

runs:
using: "composite"
steps:
- uses: docker/setup-qemu-action@v2
- uses: docker/setup-buildx-action@v2
- uses: aws-actions/configure-aws-credentials@v4
if:
github.repository == 'aws/aws-iot-fleetwise-edge' && (github.ref_type == 'tag' || github.ref
== 'refs/heads/main')
with:
role-to-assume: ${{ inputs.push-role }}
aws-region: us-east-1
- uses: aws-actions/amazon-ecr-login@v2
if:
github.repository == 'aws/aws-iot-fleetwise-edge' && (github.ref_type == 'tag' || github.ref
== 'refs/heads/main')
with:
registry-type: public
- id: meta
uses: docker/metadata-action@v4
with:
images: public.ecr.aws/aws-iot-fleetwise-edge/${{ inputs.dist-name }}
- uses: docker/build-push-action@v3
with:
context: .
file: "./tools/container/Dockerfile"
push:
${{ github.repository == 'aws/aws-iot-fleetwise-edge' && ( github.ref_type == 'tag' ||
github.ref == 'refs/heads/main' ) }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: linux/amd64,linux/arm64,linux/arm/v7
build-args: DIST_NAME=${{ inputs.dist-name }}
cache-from: type=gha
cache-to: type=gha,mode=max
41 changes: 27 additions & 14 deletions .github/template/fwe-build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ inputs:
required: true
upload-arch:
required: true
extra-options:
required: false
dist-name:
required: true
cache-paths:
required: true
dist-files:
Expand All @@ -21,51 +25,60 @@ runs:
uses: actions/cache@v3
with:
path: cache
key: deps-${{ inputs.build-arch }}-${{ hashFiles('tools/install-deps-*.sh') }}
# prettier-ignore
key: ${{ inputs.dist-name }}-${{ inputs.build-arch }}-${{ hashFiles('tools/install-deps-*.sh') }}

- name: install-deps
shell: bash
run: |
IFS=":"
CACHE_PATHS=${{ inputs.cache-paths }}
if [ -d cache ]; then
sudo cp -r cache/* /usr/local
for P in ${CACHE_PATHS}; do
sudo mkdir -p `dirname ${P}`
sudo cp -r cache${P} ${P}
done
fi
sudo ./tools/install-deps-${{ inputs.build-arch }}.sh
sudo ./tools/install-deps-${{ inputs.build-arch }}.sh ${{ inputs.extra-options }}
if [ ! -d cache ]; then
mkdir cache
IFS=":"
for P in ${{ inputs.cache-paths }}; do
cp -r ${P} cache
for P in ${CACHE_PATHS}; do
mkdir -p cache`dirname ${P}`
cp -r ${P} cache${P}
done
fi
- name: build
shell: bash
run: |
./tools/build-fwe-${{ inputs.build-arch }}.sh
./tools/build-fwe-${{ inputs.build-arch }}.sh ${{ inputs.extra-options }}
./tools/build-dist.sh ${{ inputs.dist-files }}
# If the output file changes, make sure to update the upload-asset job below
mv build/aws-iot-fleetwise-edge.tar.gz build/aws-iot-fleetwise-edge-${{ inputs.upload-arch }}.tar.gz
mv build/aws-iot-fleetwise-edge.tar.gz build/${{ inputs.dist-name }}-${{ inputs.upload-arch }}.tar.gz
if [ "${{ inputs.dist-name }}" == "aws-iot-fleetwise-edge-ros2" ]; then
tar --exclude /opt/ros/galactic/include --exclude /opt/ros/galactic/cmake -zcf build/opt.tar.gz /opt/ros
fi
- name: unit-test
shell: bash
if: inputs.build-arch == 'native'
run: |
cd build
CTEST_OUTPUT_ON_FAILURE=1 ctest
./tools/test-fwe.sh ${{ inputs.extra-options }}
- name: upload-artifacts
uses: actions/upload-artifact@v3
with:
name: build-${{ inputs.upload-arch }}
name: ${{ inputs.dist-name }}-${{ inputs.upload-arch }}
path: |
build/aws-iot-fleetwise-edge
build/aws-iot-fleetwise-edge-${{ inputs.upload-arch }}.tar.gz
build/iotfleetwise/aws-iot-fleetwise-edge
build/${{ inputs.dist-name }}-${{ inputs.upload-arch }}.tar.gz
build/Testing/Temporary/
build/**/report-*.xml
build/opt.tar.gz
- name: upload-asset
if: github.ref_type == 'tag'
shell: bash
run: |
RELEASE_VERSION="${GITHUB_REF/refs\/tags\//}"
gh release upload ${RELEASE_VERSION} build/aws-iot-fleetwise-edge-${{ inputs.upload-arch }}.tar.gz
gh release upload ${RELEASE_VERSION} build/${{ inputs.dist-name }}-${{ inputs.upload-arch }}.tar.gz
110 changes: 80 additions & 30 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ jobs:
with:
build-arch: "native"
upload-arch: "amd64"
dist-name: "aws-iot-fleetwise-edge"
cache-paths: /usr/local/x86_64-linux-gnu
dist-files: build/aws-iot-fleetwise-edge:.

Expand All @@ -48,6 +49,7 @@ jobs:
with:
build-arch: "cross-arm64"
upload-arch: "arm64"
dist-name: "aws-iot-fleetwise-edge"
cache-paths: /usr/local/aarch64-linux-gnu:/usr/local/x86_64-linux-gnu
dist-files: build/aws-iot-fleetwise-edge:.

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

build-ros2-amd64:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- uses: "./.github/template/fwe-build"
with:
build-arch: "native"
upload-arch: "amd64"
extra-options: "--with-ros2-support"
dist-name: "aws-iot-fleetwise-edge-ros2"
cache-paths: /usr/local/x86_64-linux-gnu:/opt/ros
dist-files: build/iotfleetwise/aws-iot-fleetwise-edge:.

build-ros2-arm64:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- uses: "./.github/template/fwe-build"
with:
build-arch: "cross-arm64"
upload-arch: "arm64"
extra-options: "--with-ros2-support"
dist-name: "aws-iot-fleetwise-edge-ros2"
cache-paths: /usr/local/aarch64-linux-gnu:/usr/local/x86_64-linux-gnu:/opt/ros
dist-files: build/iotfleetwise/aws-iot-fleetwise-edge:.

build-ros2-armhf:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- uses: "./.github/template/fwe-build"
with:
build-arch: "cross-armhf"
upload-arch: "armhf"
extra-options: "--with-ros2-support"
dist-name: "aws-iot-fleetwise-edge-ros2"
cache-paths: /usr/local/arm-linux-gnueabihf:/usr/local/x86_64-linux-gnu:/opt/ros
dist-files: build/iotfleetwise/aws-iot-fleetwise-edge:.

build-android:
runs-on: ubuntu-20.04
steps:
Expand All @@ -70,6 +113,7 @@ jobs:
with:
build-arch: "cross-android"
upload-arch: "android"
dist-name: "aws-iot-fleetwise-edge"
cache-paths: /usr/local/x86_64-linux-android:/usr/local/aarch64-linux-android:/usr/local/armv7a-linux-androideabi:/usr/local/x86_64-linux-gnu
dist-files:
build/x86_64/libaws-iot-fleetwise-edge.so:x86_64
Expand Down Expand Up @@ -133,38 +177,44 @@ jobs:
- uses: actions/download-artifact@v3
- name: Move artifacts to match buildx TARGETPLATFORM structure
run: |
mkdir -p linux/arm
mv build-amd64 linux/amd64
mv build-arm64 linux/arm64
mv build-armhf linux/arm/v7
find linux -name aws-iot-fleetwise-edge -exec chmod +x {} \;
- uses: docker/setup-qemu-action@v2
- uses: docker/setup-buildx-action@v2
- uses: aws-actions/configure-aws-credentials@v2
if: github.ref_type == 'tag' || github.ref == 'refs/heads/main'
with:
role-to-assume: ${{ secrets.PUBLIC_ECR_PUSH_ROLE }}
aws-region: us-east-1
- uses: aws-actions/amazon-ecr-login@v1
if: github.ref_type == 'tag' || github.ref == 'refs/heads/main'
mkdir -p linux/amd64
mv aws-iot-fleetwise-edge-amd64/aws-iot-fleetwise-edge-amd64.tar.gz linux/amd64/aws-iot-fleetwise-edge.tar.gz
tar -zcf linux/amd64/opt.tar.gz -T /dev/null # Create empty tar.gz
mkdir -p linux/arm64
mv aws-iot-fleetwise-edge-arm64/aws-iot-fleetwise-edge-arm64.tar.gz linux/arm64/aws-iot-fleetwise-edge.tar.gz
tar -zcf linux/arm64/opt.tar.gz -T /dev/null # Create empty tar.gz
mkdir -p linux/arm/v7
mv aws-iot-fleetwise-edge-armhf/aws-iot-fleetwise-edge-armhf.tar.gz linux/arm/v7/aws-iot-fleetwise-edge.tar.gz
tar -zcf linux/arm/v7/opt.tar.gz -T /dev/null # Create empty tar.gz
- uses: "./.github/template/docker-build"
with:
registry-type: public
- id: meta
uses: docker/metadata-action@v4
with:
images: public.ecr.aws/aws-iot-fleetwise-edge/aws-iot-fleetwise-edge
- uses: docker/build-push-action@v3
dist-name: aws-iot-fleetwise-edge
push-role: ${{ secrets.PUBLIC_ECR_PUSH_ROLE }}

build-docker-ros2:
runs-on: ubuntu-20.04
needs:
- build-ros2-amd64
- build-ros2-arm64
- build-ros2-armhf
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
- name: Move artifacts to match buildx TARGETPLATFORM structure
run: |
mkdir -p linux/amd64
mv aws-iot-fleetwise-edge-ros2-amd64/aws-iot-fleetwise-edge-ros2-amd64.tar.gz linux/amd64/aws-iot-fleetwise-edge.tar.gz
mv aws-iot-fleetwise-edge-ros2-amd64/opt.tar.gz linux/amd64/opt.tar.gz
mkdir -p linux/arm64
mv aws-iot-fleetwise-edge-ros2-arm64/aws-iot-fleetwise-edge-ros2-arm64.tar.gz linux/arm64/aws-iot-fleetwise-edge.tar.gz
mv aws-iot-fleetwise-edge-ros2-arm64/opt.tar.gz linux/arm64/opt.tar.gz
mkdir -p linux/arm/v7
mv aws-iot-fleetwise-edge-ros2-armhf/aws-iot-fleetwise-edge-ros2-armhf.tar.gz linux/arm/v7/aws-iot-fleetwise-edge.tar.gz
mv aws-iot-fleetwise-edge-ros2-armhf/opt.tar.gz linux/arm/v7/opt.tar.gz
- uses: "./.github/template/docker-build"
with:
context: .
file: "./tools/container/Dockerfile"
push:
${{ github.repository == 'aws/aws-iot-fleetwise-edge' && ( github.ref_type == 'tag' ||
github.ref == 'refs/heads/main' ) }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: linux/amd64,linux/arm64,linux/arm/v7
cache-from: type=gha
cache-to: type=gha,mode=max
dist-name: aws-iot-fleetwise-edge-ros2
push-role: ${{ secrets.PUBLIC_ECR_PUSH_ROLE }}

copy-cfn-templates:
runs-on: ubuntu-20.04
Expand Down
18 changes: 16 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ repos:
rev: v4.4.0
hooks:
- id: trailing-whitespace
exclude: static/.*\.[js|css]
- id: end-of-file-fixer
exclude: static/.*\.[js|css]
- id: mixed-line-ending
args: [--fix=lf]
- id: check-added-large-files
Expand Down Expand Up @@ -94,6 +96,7 @@ repos:
rev: v2.7.1
hooks:
- id: prettier
exclude: static/.*\.[js|css]
- repo: local
hooks:
- id: validate-static-config
Expand All @@ -104,7 +107,7 @@ repos:
language: python
files: "configuration/static-config.json|tools/android-app/app/src/main/assets/config-0.json"
types: [json]
additional_dependencies: ["check-jsonschema==0.25.0"]
additional_dependencies: ["check-jsonschema==0.25.0", "urllib3==1.26.17"]
verbose: true
- id: validate-persistency-metadata
name: validate-persistency-metadata
Expand All @@ -114,7 +117,7 @@ repos:
language: python
files: "interfaces/persistency/examples/persistencyMetadataFormat.json"
types: [json]
additional_dependencies: ["check-jsonschema==0.25.0"]
additional_dependencies: ["check-jsonschema==0.25.0", "urllib3==1.26.17"]
verbose: true
- id: validate-build-files
name: validate-build-files
Expand All @@ -127,3 +130,14 @@ repos:
exclude: "^test/unit/support"
types: [c++]
verbose: true
- id: forbid-tabs
name: forbid-tabs
language: pygrep
entry: "\\t"
types: [text]
exclude: \.dbc|static/.*\.[js|css]
- id: forbid-non-ascii-chars
name: forbid-non-ascii-chars
language: pygrep
entry: "[\\x80-\\xFF]"
types: [text]
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,30 @@
# Change Log

## v1.1.0 (2023-11-26)

Features:

- Add support for 'vision system data', with initial support for collection from
[ROS2](https://github.com/ros2). This enables collection of complex data types including
structures, arrays and strings. Nested structures and arrays of structures are also supported.
- **Known limitations:**
- When no internet connection is available, collected vision system data is currently dropped,
i.e. it is not persisted to the filesystem for later upload when connectivity is restored.
- When the upload of vision system data to S3 fails, e.g. due to poor connectivity or throttling
by S3, currently only one retry is attempted.

Improvements:

- Update AWS C++ SDK to v1.11.177.
- Update Yocto reference to kirkstone and NXP Linux BSP 37.0.
- Switch to MQTT 5 client for better error messages. This is fully backward compatible with the
previous client. Please note that currently we are not using nor supporting any MQTT 5 specific
feature besides reason codes.
- When a CAN interface goes down at runtime, FWE will now exit with with an error.
- Enabled `FWE_FEATURE_IWAVE_GPS` for the GitHub `armhf` pre-built-binary, and added auto-detection
of the iWave GPS for backwards compatibility with configuration files without the
`.staticConfig.iWaveGpsExample` section.

## v1.0.8 (2023-09-25)

Bug fixes:
Expand Down
Loading

0 comments on commit d56a3e8

Please sign in to comment.