AWS and GitHub provide powerful functionality for cloud-based development flows. You will learn how to integrate these technologies for the purpose of automating test and validation on Arm Virtual Hardware.

Fork and clone example project

Arm provides an example project to help you get started. This also includes a template to assist setting up your AWS account.

Fork the example into your GitHub repository from:

    

        
        
            https://github.com/ARM-software/AVH-GetStarted/fork
        
    

Additional documentation is available which covers the example and the CI workflow .

CloudFormation stack

Within this project, there is a file:

    

        
            infrastructure/cloudformation/Arm-AVH-CloudFormation-Template.yaml

        
    

which can be used to help set up your AWS account appropriately.

Navigate to CloudFormation area of your AWS console, and click on Create stack.

Select Template is ready, and Upload a template file, and browse to the above Arm-AVH-CloudFormation-Template.yaml. Click Next.

Enter an (arbitrary) Stack name and S3BucketName, and select the VpcId (likely only one option present) from the pull down. Click Next.

Leave Configure stack options as default for all. Click Next.

Optionally make tag and other settings in the Review stackname page, else keep as defaults. Accept any acknowledgements presented. Click Submit.

Your CloudFormation stack will be generated. The process takes a few minutes, click refresh to follow progress.

When complete, a list of key values will be shown in the Outputs tab.

Stack generation issues

Arm-AVH-CloudFormation-Template.yaml contains permission settings that relate to corporate AWS accounts. If you have issues generating the stack, edit the file, commenting out lines containing:

    

        
        
                PermissionsBoundary: !Sub 'arn:aws:iam::${AWS::AccountId}:policy/ProjAdminsPermBoundaryv2'
        
    

and repeat the steps to create the stack.

IAM trust policy

Navigate to IAM > Roles, and click on the Role Name Proj-AVHRole, which was created by the above CloudFormation stack.

Navigate to the Trust relationships tab, and click on Edit trust policy to edit the JSON.

Replace the text:

    

        
        
            YOUR_GITHUB_ORG/YOUR_GITHUB_REP
        
    

with appropriate values for your personal GitHub repository. Wild-card characters are allowed.

For example, to enable all of mygithubid’s repositories, use:

    

        
        
            mygithubid/*
        
    

Click Update policy when done.

Your AWS account is now set up for use with the example project.

Back
Next