From a2116bea007418dfe7e385060e8339e7be193e00 Mon Sep 17 00:00:00 2001 From: Thomas Roos Date: Wed, 15 Nov 2023 14:39:37 +0100 Subject: [PATCH 01/12] README.md: add architecture diagram --- README.md | 21 +++++++++++++++------ architecture.drawio.svg | 5 +++++ 2 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 architecture.drawio.svg diff --git a/README.md b/README.md index ec8dd3c..3bc3e5e 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,30 @@ -## My Project +## aws4embeddedlinux-ci -TODO: Fill this README out! +This [cdk](https://github.com/aws/aws-cdk) IaC library help you to deploy AWS cloud infrastructure to allow embedded Linux builds for your project. +### Architecture +![architecture overview](architecture.drawio.svg "Architecture") -### Development Setup +### Quickstart +Use the [examples](https://github.com/aws4embeddedlinux/aws4embeddedlinux-ci-examples) in our examples repo. -You can use [`npm link`](https://docs.npmjs.com/cli/v10/commands/npm-link) to develop with a checked out copy of this repo. +### Development Setup +You can use [`npm link`](https://docs.npmjs.com/cli/v10/commands/npm-link) to develop with a local copy of this repo. +#### In this library repo: ```bash -# In this library repo: $ npm link $ cd your-project +``` + +#### In your-project folder: +```bash $ npm link aws4embeddedlinux-ci ``` This will link through the system `node_modules` install. When using a system node install on Linux, this can require sudo access. To avoid this, use a [node version manager](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm#using-a-node-version-manager-to-install-nodejs-and-npm) or [set a node prefix](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally). + ## Security See [SECURITY](SECURITY.md) for more information about reporting issues with this project. @@ -67,4 +76,4 @@ See [CONTRIBUTING](CONTRIBUTING.md) for more information. ## License -This library is licensed under the MIT-0 License. See the LICENSE file. +This library is licensed under the MIT-0 License. See the [LICENSE](LICENSE) file. diff --git a/architecture.drawio.svg b/architecture.drawio.svg new file mode 100644 index 0000000..86be036 --- /dev/null +++ b/architecture.drawio.svg @@ -0,0 +1,5 @@ + + + +
AWS Account
AWS Account
CodePipeline
CodePipeline
Build Artifacts
Build Artifacts
Build and Download Cache
Build and Download Cache
CodeBuild
CodeBuild
Update Config
Update Config
Builder
Build...
CodeCommit
Repository
CodeCommit...
Download Sources
Download Sources
Upstream Package Sources
Upstream Package Sourc...
S3
S3
EFS
EFS
Download Metadata
Download Metadata
Upstream Layers
Upstream Layers
Text is not SVG - cannot display
+ From 2c4f0d307871a269e9f4197f92b4a5c302a73107 Mon Sep 17 00:00:00 2001 From: Thomas Roos Date: Wed, 15 Nov 2023 14:49:01 +0100 Subject: [PATCH 02/12] build-image-data.ts: PolicyDocument import not used --- lib/build-image-data.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/build-image-data.ts b/lib/build-image-data.ts index 46343e1..78a40a8 100644 --- a/lib/build-image-data.ts +++ b/lib/build-image-data.ts @@ -7,7 +7,6 @@ import * as iam from 'aws-cdk-lib/aws-iam'; import * as path from 'path'; import * as kms from 'aws-cdk-lib/aws-kms'; import { RemovalPolicy } from 'aws-cdk-lib'; -import { PolicyDocument } from 'aws-cdk-lib/aws-iam'; /** * Select options for the BuildImageDataStack. From bc9cd399f85003070780c95a7b546b185a1cc35e Mon Sep 17 00:00:00 2001 From: Thomas Roos Date: Wed, 15 Nov 2023 15:07:04 +0100 Subject: [PATCH 03/12] fix architecuture.drawio.svg --- architecture.drawio.svg | 1 - 1 file changed, 1 deletion(-) diff --git a/architecture.drawio.svg b/architecture.drawio.svg index 86be036..212e576 100644 --- a/architecture.drawio.svg +++ b/architecture.drawio.svg @@ -2,4 +2,3 @@
AWS Account
AWS Account
CodePipeline
CodePipeline
Build Artifacts
Build Artifacts
Build and Download Cache
Build and Download Cache
CodeBuild
CodeBuild
Update Config
Update Config
Builder
Build...
CodeCommit
Repository
CodeCommit...
Download Sources
Download Sources
Upstream Package Sources
Upstream Package Sourc...
S3
S3
EFS
EFS
Download Metadata
Download Metadata
Upstream Layers
Upstream Layers
Text is not SVG - cannot display
- From c8eab685a8c843f05eb6a5e2a012518b7902d7e6 Mon Sep 17 00:00:00 2001 From: Thomas Roos Date: Thu, 16 Nov 2023 11:21:14 +0100 Subject: [PATCH 04/12] doc test --- .github/workflows/doc.yml | 25 +++++++++++++++++++++++++ README.md | 3 +++ 2 files changed, 28 insertions(+) create mode 100644 .github/workflows/doc.yml diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml new file mode 100644 index 0000000..89a5f0f --- /dev/null +++ b/.github/workflows/doc.yml @@ -0,0 +1,25 @@ +name: Typedoc build and deploy doc to GH pages +on: + push: + branches: ["doc"] + + workflow_dispatch: + +permissions: + contents: write +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Install and Build + run: | + npm ci + npm run doc + + - name: Deploy + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: dist/docs diff --git a/README.md b/README.md index 7765239..50b11e0 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,9 @@ This [cdk](https://github.com/aws/aws-cdk) IaC library help you to deploy AWS cl ### Quickstart Use the [examples](https://github.com/aws4embeddedlinux/aws4embeddedlinux-ci-examples) in our examples repo. +### API documentation +[API documentation](https://aws4embeddedlinux.github.io/aws4embeddedlinux-ci/) generated by `npm run doc` + ### Development Setup You can use [`npm link`](https://docs.npmjs.com/cli/v10/commands/npm-link) to develop with a local copy of this repo. From 4b746913f4eeb49ad31e050b9ee121ae94264499 Mon Sep 17 00:00:00 2001 From: glimsdal Date: Thu, 16 Nov 2023 18:40:01 -0800 Subject: [PATCH 05/12] Start the setup guide. --- docs/setup.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/docs/setup.md b/docs/setup.md index cd4fffe..25940b6 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -1,3 +1,33 @@ # Setting Up see an example how to use this lib in [`examples`](../../examples/docs/setup.md) + + +## Setting Up A New Project + +1. Create a CDK project. More details can be found in the [CDK Getting Started Documentation](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html). +``` +mkdir my-project +cd my-project +cdk init app --language typescript +``` +1. Add the cdk library with `npm install aws4embeddedlinux/aws4embeddedlinux-ci` +1. Create your application using the library. Refer to the [Library Documentation](TODO) and the [Examples](github.com/aws4embeddedlinux/aws4embeddedlinux-ci-examples) for more details. +1. Deploy your application using `cdk deploy`. + + +## Examples + +### A Simple Poky Based Pipeline + +TODO... + +### A Poky Based EC2 AMI Pipeline + +Yocto can be used to create an EC2 AMI. This example demonstrates using this library to create a pipeline which builds an AMI and registers it in your account. + +TODO... + +### Using A Processor SDK In A Pipeline + +TODO... (Renesas) From 0957c8a98a9ad3a634d641d55202f53776643259 Mon Sep 17 00:00:00 2001 From: Thomas Roos Date: Fri, 17 Nov 2023 14:56:06 +0100 Subject: [PATCH 06/12] docs/setup.md: add renesas section --- docs/setup.md | 20 ++++++++++++++++++-- source-repo/renesas/README.md | 17 ----------------- 2 files changed, 18 insertions(+), 19 deletions(-) delete mode 100644 source-repo/renesas/README.md diff --git a/docs/setup.md b/docs/setup.md index 25940b6..9b48529 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -28,6 +28,22 @@ Yocto can be used to create an EC2 AMI. This example demonstrates using this lib TODO... -### Using A Processor SDK In A Pipeline +### Using pre-build, proprietary artifacts in a Pipeline -TODO... (Renesas) +This example is based on this [work](https://elinux.org/R-Car/Boards/Yocto-Gen3/v5.9.0) to build an image for Renesas R-Car-H3 Starter Kit Premier (unofficial name - H3ULCB) board including the proprietary graphics and multimedia drivers from Renesas. + +You need to download Multimedia and Graphics library and related Linux drivers, please from the following link (registration necessary): +https://www.renesas.com/us/en/application/automotive/r-car-h3-m3-h2-m2-e2-documents-software + +#### Download two files: + +R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20220121.zip +R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20220121.zip + +Graphic drivers are required for Wayland. Multimedia drivers are optional. + +#### Steps to build the image + +Create a folder named `proprietary` in the root of the source repo. Put those two downloaded files into this folder. After you did deploy the build pipeline and uncomment the `#TODO` in the build.sh file. + +Now a build should automatically start, succeed and you will get an image containing the proprietary graphics and multimedia drivers. diff --git a/source-repo/renesas/README.md b/source-repo/renesas/README.md deleted file mode 100644 index 6823f7a..0000000 --- a/source-repo/renesas/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# renesas example -based on https://elinux.org/R-Car/Boards/Yocto-Gen3/v5.9.0 - -To build a image containing the proprietary graphics and multimedia drivers from Renesas. -You need to download Multimedia and Graphics library and related Linux drivers, please from the following link: - -https://www.renesas.com/us/en/application/automotive/r-car-h3-m3-h2-m2-e2-documents-software - -Download two files: - -R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20220121.zip -R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20220121.zip - - -Graphic drivers are required for Wayland. Multimedia drivers are optional. - -Put them into the proprietary folder in the root of the source repo, after deploying the build pipeline and uncomment the #TODO in the build.sh. From 2b2b2bf0fa1158ac4d58539e51a6770dbe5edab9 Mon Sep 17 00:00:00 2001 From: glimsdal Date: Fri, 17 Nov 2023 12:03:27 -0800 Subject: [PATCH 07/12] Add more steps to the getting started guide. --- docs/setup.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/setup.md b/docs/setup.md index 9b48529..7a9cb89 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -11,10 +11,11 @@ mkdir my-project cd my-project cdk init app --language typescript ``` -1. Add the cdk library with `npm install aws4embeddedlinux/aws4embeddedlinux-ci` -1. Create your application using the library. Refer to the [Library Documentation](TODO) and the [Examples](github.com/aws4embeddedlinux/aws4embeddedlinux-ci-examples) for more details. -1. Deploy your application using `cdk deploy`. - +2. Add the cdk library with `npm install aws4embeddedlinux/aws4embeddedlinux-ci` +3. Create your application using the library. Refer to the [Library Documentation](TODO) and the [Examples](github.com/aws4embeddedlinux/aws4embeddedlinux-ci-examples) for more details. +4. Deploy your application using `cdk deploy`. +5. After the application is deployed, the 'Build Image' Pipeline needs to be run. This will create an Ubuntu based container for building Yocto. This container is used by the other pipelines. If the other pipelines are run before this container is created and pushed to [ECR](https://aws.amazon.com/ecr/), they will fail. This Build Image Pipeline will run weekly by default to keep this container patched. +6. Now the application pipeline is able to be run. This will push contents of the Yocto deploy directory into S3. ## Examples From 96d0095e3bfbba41909bdcda490a640e883b5433 Mon Sep 17 00:00:00 2001 From: Thomas Roos Date: Mon, 20 Nov 2023 15:11:01 +0100 Subject: [PATCH 08/12] doc wip --- README.md | 34 ++++++++++++++++++++++++++-------- docs/setup.md | 50 -------------------------------------------------- 2 files changed, 26 insertions(+), 58 deletions(-) delete mode 100644 docs/setup.md diff --git a/README.md b/README.md index 50b11e0..143b303 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,43 @@ -## aws4embeddedlinux-ci +# aws4embeddedlinux-ci This [cdk](https://github.com/aws/aws-cdk) IaC library help you to deploy AWS cloud infrastructure to allow embedded Linux builds for your project. -### Architecture +## Architecture ![architecture overview](architecture.drawio.svg "Architecture") -### Quickstart +## API documentation +[API documentation](https://aws4embeddedlinux.github.io/aws4embeddedlinux-ci/) generated by `npm run doc` + +# Setting Up + +## Quickstart Use the [examples](https://github.com/aws4embeddedlinux/aws4embeddedlinux-ci-examples) in our examples repo. -### API documentation -[API documentation](https://aws4embeddedlinux.github.io/aws4embeddedlinux-ci/) generated by `npm run doc` -### Development Setup +## Setting Up A New Project + +1. Create a CDK project. More details can be found in the [CDK Getting Started Documentation](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html). +``` +mkdir my-project +cd my-project +cdk init app --language typescript +``` +2. Add the cdk library with `npm install aws4embeddedlinux/aws4embeddedlinux-ci` +3. Create your application using the library. Refer to the [API Documentation](https://aws4embeddedlinux.github.io/aws4embeddedlinux-ci) and the [Examples](github.com/aws4embeddedlinux/aws4embeddedlinux-ci-examples) for more details. +4. Deploy your application using `cdk deploy`. +5. After the application is deployed, the 'Build Image' Pipeline needs to be run. This will create an Ubuntu based container for building Yocto. This container is used by the other pipelines. If the other pipelines are run before this container is created and pushed to [ECR](https://aws.amazon.com/ecr/), they will fail. This Build Image Pipeline will run weekly by default to keep this container patched. +6. Now the application pipeline is able to be run. This will push contents of the Yocto deploy directory into S3. + +## Development Setup You can use [`npm link`](https://docs.npmjs.com/cli/v10/commands/npm-link) to develop with a local copy of this repo. -#### In this library repo: +### In this library repo: ```bash $ npm link $ cd your-project ``` -#### In your-project folder: +### In your-project folder: ```bash $ npm link aws4embeddedlinux-ci ``` @@ -28,6 +45,7 @@ $ npm link aws4embeddedlinux-ci This will link through the system `node_modules` install. When using a system node install on Linux, this can require sudo access. To avoid this, use a [node version manager](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm#using-a-node-version-manager-to-install-nodejs-and-npm) or [set a node prefix](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally). + ## Security See [SECURITY](SECURITY.md) for more information about reporting issues with this project. diff --git a/docs/setup.md b/docs/setup.md deleted file mode 100644 index 7a9cb89..0000000 --- a/docs/setup.md +++ /dev/null @@ -1,50 +0,0 @@ -# Setting Up - -see an example how to use this lib in [`examples`](../../examples/docs/setup.md) - - -## Setting Up A New Project - -1. Create a CDK project. More details can be found in the [CDK Getting Started Documentation](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html). -``` -mkdir my-project -cd my-project -cdk init app --language typescript -``` -2. Add the cdk library with `npm install aws4embeddedlinux/aws4embeddedlinux-ci` -3. Create your application using the library. Refer to the [Library Documentation](TODO) and the [Examples](github.com/aws4embeddedlinux/aws4embeddedlinux-ci-examples) for more details. -4. Deploy your application using `cdk deploy`. -5. After the application is deployed, the 'Build Image' Pipeline needs to be run. This will create an Ubuntu based container for building Yocto. This container is used by the other pipelines. If the other pipelines are run before this container is created and pushed to [ECR](https://aws.amazon.com/ecr/), they will fail. This Build Image Pipeline will run weekly by default to keep this container patched. -6. Now the application pipeline is able to be run. This will push contents of the Yocto deploy directory into S3. - -## Examples - -### A Simple Poky Based Pipeline - -TODO... - -### A Poky Based EC2 AMI Pipeline - -Yocto can be used to create an EC2 AMI. This example demonstrates using this library to create a pipeline which builds an AMI and registers it in your account. - -TODO... - -### Using pre-build, proprietary artifacts in a Pipeline - -This example is based on this [work](https://elinux.org/R-Car/Boards/Yocto-Gen3/v5.9.0) to build an image for Renesas R-Car-H3 Starter Kit Premier (unofficial name - H3ULCB) board including the proprietary graphics and multimedia drivers from Renesas. - -You need to download Multimedia and Graphics library and related Linux drivers, please from the following link (registration necessary): -https://www.renesas.com/us/en/application/automotive/r-car-h3-m3-h2-m2-e2-documents-software - -#### Download two files: - -R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20220121.zip -R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20220121.zip - -Graphic drivers are required for Wayland. Multimedia drivers are optional. - -#### Steps to build the image - -Create a folder named `proprietary` in the root of the source repo. Put those two downloaded files into this folder. After you did deploy the build pipeline and uncomment the `#TODO` in the build.sh file. - -Now a build should automatically start, succeed and you will get an image containing the proprietary graphics and multimedia drivers. From 15fa5d4d436de0622db254cd89bafbe15a151951 Mon Sep 17 00:00:00 2001 From: tro Date: Mon, 20 Nov 2023 15:49:20 +0100 Subject: [PATCH 09/12] Update doc.yml --- .github/workflows/doc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index 89a5f0f..7b35f35 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -1,7 +1,7 @@ name: Typedoc build and deploy doc to GH pages on: push: - branches: ["doc"] + branches: ["main"] workflow_dispatch: From 11e446730f4c11eb1bc1ec0e99aaebb11f482523 Mon Sep 17 00:00:00 2001 From: glimsdal Date: Mon, 20 Nov 2023 12:16:44 -0600 Subject: [PATCH 10/12] Fix readme formatting --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 143b303..1bfdaf0 100644 --- a/README.md +++ b/README.md @@ -53,10 +53,10 @@ See [SECURITY](SECURITY.md) for more information about reporting issues with thi ### Git Credentials and Build Time Secrets [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) is the preferred method of adding secrets to your pipeline. This service provides a structured means of access and avoids pitfalls with putting secrets in environment variables, source repos, etc. -1. Create a Secret in Secrets Manager and add your secret value. -1. Grant Permission access permissions to the CodeBuild pipeline project. -11. Find the IAM role for the CodeBuild Project in the CodeBuild console page under the "Build Details". This is also called the "Service Role". -11. In the IAM console page, add a new policy, replacing \ with the ARN of the secret created. +1. Create a _Secret_ in Secrets Manager and add your secret value. +1. Grant access permissions to the CodeBuild pipeline project. +- 1. Find the IAM role for the CodeBuild Project in the CodeBuild console page under the "Build Details". This is also called the "Service Role". +- 1. In the IAM console page, add a new policy, replacing \ with the ARN of the secret created. ```json { "Version": "2012-10-17", From 2749733f338d84700e80a2d85ef73b46da0a2073 Mon Sep 17 00:00:00 2001 From: glimsdal Date: Mon, 20 Nov 2023 12:30:13 -0600 Subject: [PATCH 11/12] Remove resolved TODOs. --- lib/build-image-pipeline.ts | 2 +- lib/demo-pipeline.ts | 1 - test/build-image-repo.test.ts | 11 ----------- test/demo-pipeline-nag.test.ts | 2 +- 4 files changed, 2 insertions(+), 14 deletions(-) diff --git a/lib/build-image-pipeline.ts b/lib/build-image-pipeline.ts index 6e3ade5..3f990b9 100644 --- a/lib/build-image-pipeline.ts +++ b/lib/build-image-pipeline.ts @@ -48,7 +48,7 @@ export class BuildImagePipelineStack extends cdk.Stack { const sourceAction = new codepipeline_actions.S3SourceAction({ actionName: 'Build-Image-Source', bucket: props.dataBucket, - bucketKey: 'data.zip', // TODO(glimsdal): Parameterize. + bucketKey: 'data.zip', output: sourceOutput, }); diff --git a/lib/demo-pipeline.ts b/lib/demo-pipeline.ts index 3de3041..014887e 100644 --- a/lib/demo-pipeline.ts +++ b/lib/demo-pipeline.ts @@ -340,7 +340,6 @@ def handler(event, context): ): string { const fs = new efs.FileSystem(this, `DemoPipeline${name}Filesystem`, { vpc, - // TODO(nateglims): Reconsider this when development is slowing down. removalPolicy: cdk.RemovalPolicy.DESTROY, }); fs.connections.allowFrom(securityGroup, Port.tcp(2049)); diff --git a/test/build-image-repo.test.ts b/test/build-image-repo.test.ts index 69e03f0..d77d1f1 100644 --- a/test/build-image-repo.test.ts +++ b/test/build-image-repo.test.ts @@ -7,17 +7,6 @@ describe('Build Image Repository', () => { env: { account: '111111111111', region: 'eu-central-1' }, }; - test('ECR Repo has EmptyOnDelete', () => { - const app = new cdk.App(); - const stack = new BuildImageRepoStack(app, 'MyTestStack', props); - const template = Template.fromStack(stack); - template.resourceCountIs('AWS::ECR::Repository', 1); - // TODO: Investigate why we cannot set EmptyOnDelete in CDK. - // template.hasResourceProperties("AWS::ECR::Repository", { - // EmptyOnDelete: true, - // }); - }); - test('Snapshot', () => { const app = new cdk.App(); const stack = new BuildImageRepoStack(app, 'MyTestStack', props); diff --git a/test/demo-pipeline-nag.test.ts b/test/demo-pipeline-nag.test.ts index 7d057ff..a1a176b 100644 --- a/test/demo-pipeline-nag.test.ts +++ b/test/demo-pipeline-nag.test.ts @@ -35,7 +35,7 @@ describe('Demo pipeline cdk-nag AwsSolutions Pack', () => { }, { id: 'AwsSolutions-CB3', - reason: 'TODO: Verify CodeBuild Privilege mode is required here.', + reason: 'CodeBuild Privilege mode is required for this pipeline.', }, { From 46426542e8c563f283f6445cde15f8b40393de89 Mon Sep 17 00:00:00 2001 From: glimsdal Date: Mon, 20 Nov 2023 12:31:44 -0600 Subject: [PATCH 12/12] Move doc images into folder. --- README.md | 2 +- architecture.drawio.svg => images/architecture.svg | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename architecture.drawio.svg => images/architecture.svg (100%) diff --git a/README.md b/README.md index 1bfdaf0..095d777 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ This [cdk](https://github.com/aws/aws-cdk) IaC library help you to deploy AWS cloud infrastructure to allow embedded Linux builds for your project. ## Architecture -![architecture overview](architecture.drawio.svg "Architecture") +![architecture overview](images/architecture.svg "Architecture") ## API documentation [API documentation](https://aws4embeddedlinux.github.io/aws4embeddedlinux-ci/) generated by `npm run doc` diff --git a/architecture.drawio.svg b/images/architecture.svg similarity index 100% rename from architecture.drawio.svg rename to images/architecture.svg