Skip to content
This repository was archived by the owner on Mar 19, 2024. It is now read-only.
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@
lambda.zip
swift-shared-libs
default.profraw
.swiftpm
48 changes: 17 additions & 31 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,48 +24,34 @@ addons:
before_install:
- ./scripts/aws_travis_credentials.sh

global:
- DOCKER_OS=amazonlinux2
- SWIFT_VERSION=5.2.4-amazonlinux2
- LAYER_VERSION=5.2.4-amazonlinux2

install:
- make --version
- make docker_build

script:
- docker image ls
- make package_layer
- make package_lambda
- make swift_test
- make swift_test SWIFT_EXECUTABLE=HTTPSRequest SWIFT_PROJECT_PATH=Examples/HTTPSRequest LAMBDA_FUNCTION_NAME=HTTPSRequest LAMBDA_HANDLER=HTTPSRequest.getHttps
- make swift_test SWIFT_EXECUTABLE=S3Test SWIFT_PROJECT_PATH=Examples/S3Test LAMBDA_FUNCTION_NAME=S3Test LAMBDA_HANDLER=S3Test.getObject
- make build_lambda_local SWIFT_EXECUTABLE=HelloWorld SWIFT_PROJECT_PATH=Examples/HelloWorld LAMBDA_FUNCTION_NAME=HelloWorld LAMBDA_HANDLER=HelloWorld.helloWorld
- make start_docker_compose_env SWIFT_EXECUTABLE=HelloWorld SWIFT_PROJECT_PATH=Examples/HelloWorld LAMBDA_FUNCTION_NAME=HelloWorld LAMBDA_HANDLER=HelloWorld.helloWorld
- make invoke_lambda_local SWIFT_EXECUTABLE=HelloWorld SWIFT_PROJECT_PATH=Examples/HelloWorld LAMBDA_FUNCTION_NAME=HelloWorld LAMBDA_HANDLER=HelloWorld.helloWorld
- make stop_docker_compose_env SWIFT_EXECUTABLE=HelloWorld SWIFT_PROJECT_PATH=Examples/HelloWorld LAMBDA_FUNCTION_NAME=HelloWorld LAMBDA_HANDLER=HelloWorld.helloWorld
- make test_lambda_local_output SWIFT_EXECUTABLE=HelloWorld SWIFT_PROJECT_PATH=Examples/HelloWorld LAMBDA_FUNCTION_NAME=HelloWorld LAMBDA_HANDLER=HelloWorld.helloWorld
- make build_lambda_local SWIFT_EXECUTABLE=HTTPSRequest SWIFT_PROJECT_PATH=Examples/HTTPSRequest LAMBDA_FUNCTION_NAME=HTTPSRequest LAMBDA_HANDLER=HTTPSRequest.getHttps
- make start_docker_compose_env SWIFT_EXECUTABLE=HTTPSRequest SWIFT_PROJECT_PATH=Examples/HTTPSRequest LAMBDA_FUNCTION_NAME=HTTPSRequest LAMBDA_HANDLER=HTTPSRequest.getHttps
- make invoke_lambda_local SWIFT_EXECUTABLE=HTTPSRequest SWIFT_PROJECT_PATH=Examples/HTTPSRequest LAMBDA_FUNCTION_NAME=HTTPSRequest LAMBDA_HANDLER=HTTPSRequest.getHttps
- make stop_docker_compose_env SWIFT_EXECUTABLE=HTTPSRequest SWIFT_PROJECT_PATH=Examples/HTTPSRequest LAMBDA_FUNCTION_NAME=HTTPSRequest LAMBDA_HANDLER=HTTPSRequest.getHttps
- make test_lambda_local_output SWIFT_EXECUTABLE=HTTPSRequest SWIFT_PROJECT_PATH=Examples/HTTPSRequest LAMBDA_FUNCTION_NAME=HTTPSRequest LAMBDA_HANDLER=HTTPSRequest.getHttps
- make build_lambda_local SWIFT_EXECUTABLE=S3Test SWIFT_PROJECT_PATH=Examples/S3Test LAMBDA_FUNCTION_NAME=S3Test LAMBDA_HANDLER=S3Test.getObject
- make start_docker_compose_env SWIFT_EXECUTABLE=S3Test SWIFT_PROJECT_PATH=Examples/S3Test LAMBDA_FUNCTION_NAME=S3Test LAMBDA_HANDLER=S3Test.getObject
- make invoke_lambda_local SWIFT_EXECUTABLE=S3Test SWIFT_PROJECT_PATH=Examples/S3Test LAMBDA_FUNCTION_NAME=S3Test LAMBDA_HANDLER=S3Test.getObject
- make stop_docker_compose_env SWIFT_EXECUTABLE=S3Test SWIFT_PROJECT_PATH=Examples/S3Test LAMBDA_FUNCTION_NAME=S3Test LAMBDA_HANDLER=S3Test.getObject
- make test_lambda_local_output SWIFT_EXECUTABLE=S3Test SWIFT_PROJECT_PATH=Examples/S3Test LAMBDA_FUNCTION_NAME=S3Test LAMBDA_HANDLER=S3Test.getObject
- make build_lambda_local SWIFT_EXECUTABLE=RedisDemo SWIFT_PROJECT_PATH=Examples/RedisDemo LAMBDA_FUNCTION_NAME=RedisDemo LAMBDA_HANDLER=$(SWIFT_EXECUTABLE).setGet
- make start_docker_compose_env SWIFT_EXECUTABLE=RedisDemo SWIFT_PROJECT_PATH=Examples/RedisDemo LAMBDA_FUNCTION_NAME=RedisDemo LAMBDA_HANDLER=$(SWIFT_EXECUTABLE).setGet
- make invoke_lambda_local SWIFT_EXECUTABLE=RedisDemo SWIFT_PROJECT_PATH=Examples/RedisDemo LAMBDA_FUNCTION_NAME=RedisDemo LAMBDA_HANDLER=$(SWIFT_EXECUTABLE).setGet
- make stop_docker_compose_env SWIFT_EXECUTABLE=RedisDemo SWIFT_PROJECT_PATH=Examples/RedisDemo LAMBDA_FUNCTION_NAME=RedisDemo LAMBDA_HANDLER=$(SWIFT_EXECUTABLE).setGet
- make test_lambda_local_output SWIFT_EXECUTABLE=RedisDemo SWIFT_PROJECT_PATH=Examples/RedisDemo LAMBDA_FUNCTION_NAME=RedisDemo LAMBDA_HANDLER=$(SWIFT_EXECUTABLE).setGet
- make build_lambda_local SWIFT_EXECUTABLE=PostgreSQLDemo SWIFT_PROJECT_PATH=Examples/PostgreSQLDemo LAMBDA_FUNCTION_NAME=PostgreSQLDemo LAMBDA_HANDLER=$(SWIFT_EXECUTABLE).query
- make start_docker_compose_env SWIFT_EXECUTABLE=PostgreSQLDemo SWIFT_PROJECT_PATH=Examples/PostgreSQLDemo LAMBDA_FUNCTION_NAME=PostgreSQLDemo LAMBDA_HANDLER=$(SWIFT_EXECUTABLE).query
- make invoke_lambda_local SWIFT_EXECUTABLE=PostgreSQLDemo SWIFT_PROJECT_PATH=Examples/PostgreSQLDemo LAMBDA_FUNCTION_NAME=PostgreSQLDemo LAMBDA_HANDLER=$(SWIFT_EXECUTABLE).query
- make stop_docker_compose_env SWIFT_EXECUTABLE=PostgreSQLDemo SWIFT_PROJECT_PATH=Examples/PostgreSQLDemo LAMBDA_FUNCTION_NAME=PostgreSQLDemo LAMBDA_HANDLER=$(SWIFT_EXECUTABLE).query
- make test_lambda_local_output SWIFT_EXECUTABLE=PostgreSQLDemo SWIFT_PROJECT_PATH=Examples/PostgreSQLDemo LAMBDA_FUNCTION_NAME=PostgreSQLDemo LAMBDA_HANDLER=$(SWIFT_EXECUTABLE).query

env:
- SWIFT_EXECUTABLE=HelloWorld SWIFT_PROJECT_PATH=Examples/HelloWorld LAMBDA_FUNCTION_NAME=HelloWorld LAMBDA_HANDLER=HelloWorld.helloWorld
- SWIFT_EXECUTABLE=HTTPSRequest SWIFT_PROJECT_PATH=Examples/HTTPSRequest LAMBDA_FUNCTION_NAME=HTTPSRequest LAMBDA_HANDLER=HTTPSRequest.getHttps
- SWIFT_EXECUTABLE=S3Test SWIFT_PROJECT_PATH=Examples/S3Test LAMBDA_FUNCTION_NAME=S3Test LAMBDA_HANDLER=S3Test.getObject
- SWIFT_EXECUTABLE=RedisDemo SWIFT_PROJECT_PATH=Examples/RedisDemo LAMBDA_FUNCTION_NAME=RedisDemo LAMBDA_HANDLER=$(SWIFT_EXECUTABLE).setGet
- SWIFT_EXECUTABLE=PostgreSQLDemo SWIFT_PROJECT_PATH=Examples/PostgreSQLDemo LAMBDA_FUNCTION_NAME=PostgreSQLDemo LAMBDA_HANDLER=$(SWIFT_EXECUTABLE).query

script:
- make swift_test
- make run_test_example

deploy:
provider: releases
api_key:
secure: Ddgpz/LsTWeTTr8Xm0br+Vs3Is58V2bOHthwLOt5a1TbyhWAgU+tyc6lwvd51mhQxeNNVPSOWLKC4QgJEp2KI2ZCaw0K+Czb8lqMzWF5eJggDmJ0+wOZIHVEWMO7smLTwDc1jWtdnQA3qkPtXgSw0ERcJ9z4/haz1Q8v7Jj5qfoBJiNxnYYvw/79ElqROIjtQ0asX/i6xhZSlBFO1dXo5QPzX7XeNREQmh2dCkjfoeYSFSCah4Tnn5akxX36Pef1DJvWdFvc623pWAUoCpeswIMW/htby5tJQ6+C9PK+2yzqomKfU9gTK9iv7Nt3X1LN3KsXpk6VHgtljiUkEsecXjYB5WVBT00mY/4bnTPyY6RjI/V6C0aGnTE+0Pj78kDofJKj5uNevFi4vlBI2g4s4G0mRASFRp+sk3ASmzl62Lohkl1LfNiPYKRKRA2jT81s79zBnYv/MQ7t3fY+yd7iP+NrJfDFR/XG0vxBOQrNRpq6LR0M7DeHgTD/d9an2WEqJlX9pp+Ji/ywwepW7b/NLv42xeN99SnHbDmJJ/eZ4P1IC37JCOT5CjJ9wIyP8c+Q89JT30nlvON9xPM8MOx/MrVAGCeqC6FW1Zjc6oakTRZdngMqN1acH5OosLX83cOjjXo8ivRt5Sm2tfX3ZuOgL98kdaYsIBPIYbYhZDODdvM=
file: ".build/layer/swift-lambda-runtime-5-1-5.zip"
file: ".build/layer/swift-lambda-runtime-${TRAVIS_TAG}-@{DOCKER_OS}.zip"
skip_cleanup: true
on:
tags: true
4 changes: 2 additions & 2 deletions Examples/HTTPSRequest/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ services:
image: "lambci/lambda:provided"
volumes:
- ../../.build/local:/var/task:ro,delegated
- ../../bootstrap:/opt/bootstrap:ro,delegated
- ../../swift-shared-libs:/opt/swift-shared-libs:ro,delegated
- ../../swift-shared-libs/bootstrap:/opt/bootstrap:ro,delegated
- ../../swift-shared-libs:/opt/:ro,delegated
environment:
- DOCKER_LAMBDA_STAY_OPEN=1
- AWS_LAMBDA_FUNCTION_TIMEOUT=10
Expand Down
4 changes: 2 additions & 2 deletions Examples/HelloWorld/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ services:
image: "lambci/lambda:provided"
volumes:
- ../../.build/local:/var/task:ro,delegated
- ../../bootstrap:/opt/bootstrap:ro,delegated
- ../../swift-shared-libs:/opt/swift-shared-libs:ro,delegated
- ../../swift-shared-libs/bootstrap:/opt/bootstrap:ro,delegated
- ../../swift-shared-libs:/opt/:ro,delegated
environment:
- DOCKER_LAMBDA_STAY_OPEN=1
- AWS_LAMBDA_FUNCTION_TIMEOUT=10
Expand Down
97 changes: 97 additions & 0 deletions Examples/PostgreSQLDemo/Package.resolved

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,9 @@ final class PostgreSQLDemoTests: XCTestCase {

let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = String(data: data, encoding: .utf8)
let isError = output?.contains("unknown(host: \"postgres\", port: 5432)\n")

XCTAssertEqual(output, "Hello, world!\n")
XCTAssertEqual(isError, true)
}

/// Returns path to the built products directory.
Expand Down
4 changes: 2 additions & 2 deletions Examples/PostgreSQLDemo/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ services:
image: "lambci/lambda:provided"
volumes:
- ../../.build/local:/var/task:ro,delegated
- ../../bootstrap:/opt/bootstrap:ro,delegated
- ../../swift-shared-libs:/opt/swift-shared-libs:ro,delegated
- ../../swift-shared-libs/bootstrap:/opt/bootstrap:ro,delegated
- ../../swift-shared-libs:/opt/:ro,delegated
environment:
- DOCKER_LAMBDA_STAY_OPEN=1
- AWS_LAMBDA_FUNCTION_TIMEOUT=10
Expand Down
6 changes: 4 additions & 2 deletions Examples/RedisDemo/Tests/RedisDemoTests/RedisDemoTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ final class RedisDemoTests: XCTestCase {
return
}

let fooBinary = productsDirectory.appendingPathComponent("aws-lambda-swift-sprinter-redis")
let fooBinary = productsDirectory.appendingPathComponent("RedisDemo")

let process = Process()
process.executableURL = fooBinary
Expand All @@ -26,7 +26,9 @@ final class RedisDemoTests: XCTestCase {
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = String(data: data, encoding: .utf8)

XCTAssertEqual(output, "Hello, world!\n")
let isError = output?.contains("missingEnvironmentVariables(LambdaSwiftSprinter.Context.AWSEnvironmentKey.lambdaRuntimeApi)")

XCTAssertEqual(isError, true)
}

/// Returns path to the built products directory.
Expand Down
4 changes: 2 additions & 2 deletions Examples/RedisDemo/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ services:
image: "lambci/lambda:provided"
volumes:
- ../../.build/local:/var/task:ro,delegated
- ../../bootstrap:/opt/bootstrap:ro,delegated
- ../../swift-shared-libs:/opt/swift-shared-libs:ro,delegated
- ../../swift-shared-libs/bootstrap:/opt/bootstrap:ro,delegated
- ../../swift-shared-libs:/opt/:ro,delegated
environment:
- DOCKER_LAMBDA_STAY_OPEN=1
- AWS_LAMBDA_FUNCTION_TIMEOUT=10
Expand Down
106 changes: 106 additions & 0 deletions Examples/S3Test/Package.resolved

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 10 additions & 3 deletions Examples/S3Test/Package.swift
Original file line number Diff line number Diff line change
@@ -1,25 +1,32 @@
// swift-tools-version:5.0
// swift-tools-version:5.1

import PackageDescription

let package = Package(
name: "S3Test",
products: [
.executable(name: "S3Test", targets: ["S3Test"])
],
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
//.package(path: "../../../aws-lambda-swift-sprinter-core"),
//.package(url: "https://github.com/swift-sprinter/aws-lambda-swift-sprinter-core", from: "1.0.0-alpha.3"),
//.package(path: "../../../aws-lambda-swift-sprinter-nio-plugin"),
.package(url: "https://github.com/swift-sprinter/aws-lambda-swift-sprinter-nio-plugin", from: "1.0.0"),
.package(url: "https://github.com/swift-aws/aws-sdk-swift.git", from: "4.0.0"),
.package(url: "https://github.com/swift-aws/aws-sdk-swift.git", from: "5.0.0-alpha.3"),
.package(url: "https://github.com/apple/swift-log.git", from: "1.0.0"),
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
.target(
name: "S3Test",
dependencies: ["LambdaSwiftSprinterNioPlugin", "S3", "Logging"]
dependencies: [
"LambdaSwiftSprinterNioPlugin",
.product(name: "AWSS3", package: "aws-sdk-swift"),
"Logging"
]
),
.testTarget(
name: "S3TestTests",
Expand Down
Loading