Skip to content

[CI] Adopt soundess workflow from swiftlang #405

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Oct 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/issue-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ body:
attributes:
label: Actual behavior
description: What actually happened
placeholder: Describe
placeholder: Describe
validations:
required: true
- type: textarea
Expand Down Expand Up @@ -55,7 +55,7 @@ body:
attributes:
label: Swift version
description: Swift environment version.
placeholder: |
placeholder: |
Open a Terminal and execute the following command
swift --version && uname -a
Expand Down
73 changes: 36 additions & 37 deletions .github/workflows/examples_matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,58 +24,57 @@ on:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ inputs.name }}
cancel-in-progress: true

jobs:
linux:
name: Example/${{ matrix.examples }} on Linux ${{ matrix.swift.swift_version }}
name: Example/${{ matrix.examples }} on Linux ${{ matrix.swift.swift_version }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# This should be passed as an argument in input. Can we pass arrays as argument ?
examples : [ "HelloWorld", "APIGateway", "S3_AWSSDK", "S3_Soto" ]
examples: ["HelloWorld", "APIGateway", "S3_AWSSDK", "S3_Soto"]
# examples: ${{ inputs.examples }}

# We are using only one Swift version
# We are using only one Swift version
swift:
- image: ${{ inputs.matrix_linux_swift_container_image }}
swift_version: "6.0.1-amazonlinux2"
- image: ${{ inputs.matrix_linux_swift_container_image }}
swift_version: "6.0.1-amazonlinux2"
container:
image: ${{ matrix.swift.image }}
steps:
# GitHub checkout action has a dep on NodeJS 20 which is not running on Amazonlinux2
# workaround is to manually checkout the repository
# https://github.com/actions/checkout/issues/1487
- name: Manually Clone repository and checkout PR
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
# Clone the repository
git clone https://github.com/${{ github.repository }}
cd ${{ github.event.repository.name }}
# GitHub checkout action has a dep on NodeJS 20 which is not running on Amazonlinux2
# workaround is to manually checkout the repository
# https://github.com/actions/checkout/issues/1487
- name: Manually Clone repository and checkout PR
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
# Clone the repository
git clone https://github.com/${{ github.repository }}
cd ${{ github.event.repository.name }}
# Fetch the pull request
git fetch origin +refs/pull/$PR_NUMBER/merge:
# Fetch the pull request
git fetch origin +refs/pull/$PR_NUMBER/merge:
# Checkout the pull request
git checkout -qf FETCH_HEAD
# Checkout the pull request
git checkout -qf FETCH_HEAD
# - name: Checkout repository
# uses: actions/checkout@v4
# with:
# persist-credentials: false
# - name: Checkout repository
# uses: actions/checkout@v4
# with:
# persist-credentials: false

- name: Mark the workspace as safe
working-directory: ${{ github.event.repository.name }} # until we can use action/checkout@v4
# https://github.com/actions/checkout/issues/766
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}
- name: Mark the workspace as safe
working-directory: ${{ github.event.repository.name }} # until we can use action/checkout@v4
# https://github.com/actions/checkout/issues/766
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}

- name: Run matrix job
working-directory: ${{ github.event.repository.name }} # until we can use action/checkout@v4
env:
SWIFT_VERSION: ${{ matrix.swift.swift_version }}
COMMAND: ${{ inputs.matrix_linux_command }}
EXAMPLE: ${{ matrix.examples }}
run: |
./scripts/integration_tests.sh
- name: Run matrix job
working-directory: ${{ github.event.repository.name }} # until we can use action/checkout@v4
env:
SWIFT_VERSION: ${{ matrix.swift.swift_version }}
COMMAND: ${{ inputs.matrix_linux_command }}
EXAMPLE: ${{ matrix.examples }}
run: |
./scripts/integration_tests.sh
63 changes: 32 additions & 31 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
@@ -1,38 +1,39 @@
name: PR

on:
pull_request:
types: [opened, reopened, synchronize]
pull_request:
types: [opened, reopened, synchronize]

jobs:
soundness:
name: Soundness
uses: apple/swift-nio/.github/workflows/soundness.yml@main
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please set format container to 6.0-nightly.

with:
license_header_check_project_name: "SwiftAWSLambdaRuntime"
shell_check_enabled: false
api_breakage_check_container_image: "swift:6.0-noble"
docs_check_container_image: "swift:6.0-noble"
soundness:
name: Soundness
uses: swiftlang/github-workflows/.github/workflows/soundness.yml@main
with:
license_header_check_project_name: "SwiftAWSLambdaRuntime"
shell_check_enabled: false
api_breakage_check_container_image: "swift:6.0-noble"
docs_check_container_image: "swift:6.0-noble"
format_check_container_image: "swiftlang/swift:nightly-6.0-jammy"

unit-tests:
name: Unit tests
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
with:
linux_5_8_enabled: false
linux_5_9_enabled: false
linux_5_10_enabled: false
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error"
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error"
unit-tests:
name: Unit tests
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
with:
linux_5_8_enabled: false
linux_5_9_enabled: false
linux_5_10_enabled: false
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error"
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error"

integration-tests:
name: Integration Tests
uses: ./.github/workflows/examples_matrix.yml
with:
# We should pass the list of examples here, but we can't pass an array as argument
# examples: [ "HelloWorld", "APIGateway" ]
name: "Integration tests"
matrix_linux_command: "LAMBDA_USE_LOCAL_DEPS=../.. swift build"
swift-6-language-mode:
name: Swift 6 Language Mode
uses: apple/swift-nio/.github/workflows/swift_6_language_mode.yml@main
integration-tests:
name: Integration Tests
uses: ./.github/workflows/examples_matrix.yml
with:
# We should pass the list of examples here, but we can't pass an array as argument
# examples: [ "HelloWorld", "APIGateway" ]
name: "Integration tests"
matrix_linux_command: "LAMBDA_USE_LOCAL_DEPS=../.. swift build"

swift-6-language-mode:
name: Swift 6 Language Mode
uses: apple/swift-nio/.github/workflows/swift_6_language_mode.yml@main
4 changes: 2 additions & 2 deletions Examples/APIGateway/template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Resources:
Properties:
CodeUri: .build/plugins/AWSLambdaPackager/outputs/AWSLambdaPackager/APIGatewayLambda/APIGatewayLambda.zip
Timeout: 60
Handler: swift.bootstrap # ignored by the Swift runtime
Handler: swift.bootstrap # ignored by the Swift runtime
Runtime: provided.al2
MemorySize: 512
Architectures:
Expand All @@ -22,7 +22,7 @@ Resources:
LOG_LEVEL: debug
Events:
HttpApiEvent:
Type: HttpApi
Type: HttpApi

Outputs:
# print API Gateway endpoint
Expand Down
12 changes: 6 additions & 6 deletions Examples/S3_AWSSDK/template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Resources:
Properties:
CodeUri: .build/plugins/AWSLambdaPackager/outputs/AWSLambdaPackager/AWSSDKExample/AWSSDKExample.zip
Timeout: 60
Handler: swift.bootstrap # ignored by the Swift runtime
Handler: swift.bootstrap # ignored by the Swift runtime
Runtime: provided.al2
MemorySize: 512
Architectures:
Expand All @@ -30,11 +30,11 @@ Resources:
# It grants the function permissions to read the list of buckets in your account.
Policies:
- Statement:
- Sid: ListAllS3BucketsInYourAccount
Effect: Allow
Action:
- s3:ListAllMyBuckets
Resource: '*'
- Sid: ListAllS3BucketsInYourAccount
Effect: Allow
Action:
- s3:ListAllMyBuckets
Resource: '*'

# print API endpoint
Outputs:
Expand Down
13 changes: 6 additions & 7 deletions Examples/S3_Soto/template.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: SAM Template for AWS SDK Example
Expand All @@ -10,7 +9,7 @@ Resources:
Properties:
CodeUri: .build/plugins/AWSLambdaPackager/outputs/AWSLambdaPackager/SotoExample/SotoExample.zip
Timeout: 60
Handler: swift.bootstrap # ignored by the Swift runtime
Handler: swift.bootstrap # ignored by the Swift runtime
Runtime: provided.al2
MemorySize: 512
Architectures:
Expand All @@ -31,11 +30,11 @@ Resources:
# It grants the function permissions to read the list of buckets in your account.
Policies:
- Statement:
- Sid: ListAllS3BucketsInYourAccount
Effect: Allow
Action:
- s3:ListAllMyBuckets
Resource: '*'
- Sid: ListAllS3BucketsInYourAccount
Effect: Allow
Action:
- s3:ListAllMyBuckets
Resource: '*'

# print API endpoint
Outputs:
Expand Down
Loading