Skip to content

Commit

Permalink
[CI] Adopt soundess workflow from swiftlang
Browse files Browse the repository at this point in the history
  • Loading branch information
FranzBusch committed Oct 10, 2024
1 parent b4673d2 commit a3ac6e8
Show file tree
Hide file tree
Showing 6 changed files with 83 additions and 85 deletions.
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
62 changes: 31 additions & 31 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
@@ -1,38 +1,38 @@
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
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"

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

0 comments on commit a3ac6e8

Please sign in to comment.