Skip to content

Commit

Permalink
Project template updates (#26)
Browse files Browse the repository at this point in the history
* Project template updates

* Set context for each lambda, as swift 6 requires this
  • Loading branch information
adam-fowler committed Mar 9, 2024
1 parent ebcfb02 commit 7c238af
Show file tree
Hide file tree
Showing 11 changed files with 92 additions and 97 deletions.
21 changes: 21 additions & 0 deletions .github/dependabot.yml
@@ -0,0 +1,21 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
groups:
dependencies:
patterns:
- "*"
- package-ecosystem: "swift"
directory: "/"
schedule:
interval: "daily"
open-pull-requests-limit: 6
allow:
- dependency-type: all
groups:
all-dependencies:
patterns:
- "*"
21 changes: 11 additions & 10 deletions .github/workflows/api-breakage.yml
Expand Up @@ -7,16 +7,17 @@ on:
jobs:
linux:
runs-on: ubuntu-latest
timeout-minutes: 15
container:
image: swift:5.9
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
# https://github.com/actions/checkout/issues/766
- name: Mark the workspace as safe
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}
- name: API breaking changes
run: |
swift package diagnose-api-breaking-changes origin/${GITHUB_BASE_REF}
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# https://github.com/actions/checkout/issues/766
- name: Mark the workspace as safe
run: git config --global --add safe.directory ${GITHUB_WORKSPACE}
- name: API breaking changes
run: |
swift package diagnose-api-breaking-changes origin/${GITHUB_BASE_REF}
70 changes: 22 additions & 48 deletions .github/workflows/ci.yml
Expand Up @@ -3,63 +3,37 @@ name: CI
on:
push:
branches:
- main
- 2.x.x
- main
paths:
- "**.swift"
- "**.yml"
- '**.swift'
- '**.yml'
pull_request:
branches:
- main
- 2.x.x
paths:
- "**.swift"
- "**.yml"
workflow_dispatch:

jobs:
# Disabled until 5.9 becomes available
# macOS:
# runs-on: macOS-latest
# steps:
# - name: Checkout
# uses: actions/checkout@v3
# - name: SPM tests
# run: swift test --enable-code-coverage
# - name: Convert coverage files
# run: |
# xcrun llvm-cov export -format "lcov" \
# .build/debug/hummingbird-lambdaPackageTests.xctest/Contents/MacOs/hummingbird-lambdaPackageTests \
# -ignore-filename-regex="\/Tests\/" \
# -ignore-filename-regex="\/Benchmarks\/" \
# -instr-profile=.build/debug/codecov/default.profdata > info.lcov
# - name: Upload to codecov.io
# uses: codecov/codecov-action@v3
# with:
# file: info.lcov
linux:
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
matrix:
image:
- "swift:5.9"

image: ["swift:5.9", "swift:5.10", "swiftlang/swift:nightly-jammy"]

container:
image: ${{ matrix.image }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Test
run: |
swift test --enable-code-coverage
- name: Convert coverage files
run: |
llvm-cov export -format="lcov" \
.build/debug/hummingbird-lambdaPackageTests.xctest \
-ignore-filename-regex="\/Tests\/" \
-ignore-filename-regex="\/Benchmarks\/" \
-instr-profile .build/debug/codecov/default.profdata > info.lcov
- name: Upload to codecov.io
uses: codecov/codecov-action@v3
with:
file: info.lcov
- name: Checkout
uses: actions/checkout@v4
- name: Test
run: |
swift test --enable-code-coverage
- name: Convert coverage files
run: |
llvm-cov export -format="lcov" \
.build/debug/hummingbird-lambdaPackageTests.xctest \
-ignore-filename-regex="\/Tests\/" \
-ignore-filename-regex="\/Benchmarks\/" \
-instr-profile .build/debug/codecov/default.profdata > info.lcov
- name: Upload to codecov.io
uses: codecov/codecov-action@v4
with:
file: info.lcov
24 changes: 8 additions & 16 deletions .github/workflows/nightly.yml
@@ -1,29 +1,21 @@
name: Swift nightly build

on:
schedule:
- cron: "0 1 * * 1"
workflow_dispatch:

jobs:
macOS:
runs-on: macOS-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: SPM tests
run: swift test
linux:
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
matrix:
image: ["nightly-focal", "nightly-jammy", "nightly-amazonlinux2"]

image: ['nightly-focal', 'nightly-jammy', 'nightly-amazonlinux2']
container:
image: swiftlang/swift:${{ matrix.image }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Test
run: |
swift test --enable-test-discovery
- name: Checkout
uses: actions/checkout@v4
- name: Test
run: |
swift test
24 changes: 11 additions & 13 deletions .github/workflows/validate.yml
Expand Up @@ -2,21 +2,19 @@ name: Validity Check

on:
pull_request:
branches:
- main
- 2.x.x

jobs:
validate:
runs-on: macOS-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Install Dependencies
run: |
brew install mint
mint install NickLockwood/SwiftFormat@0.48.17 --no-link
- name: run script
run: ./scripts/validate.sh
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install Dependencies
run: |
brew install mint
mint install NickLockwood/SwiftFormat@0.51.15 --no-link
- name: run script
run: ./scripts/validate.sh
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -9,3 +9,4 @@ xcuserdata/
Package.resolved
/public
/docs
.benchmarkBaselines
4 changes: 2 additions & 2 deletions .swiftformat
@@ -1,5 +1,5 @@
# Minimum swiftformat version
--minversion 0.47.4
--minversion 0.51.0

# Swift version
--swiftversion 5.9
Expand All @@ -8,7 +8,7 @@
--exclude .build

# rules
--disable redundantReturn, extensionAccessControl
--disable redundantReturn, extensionAccessControl, typeSugar

# format options
--ifdef no-indent
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Expand Up @@ -2,7 +2,7 @@

## Legal
By submitting a pull request, you represent that you have the right to license your contribution to the community, and agree by submitting the patch
that your contributions are licensed under the Apache 2.0 license (see [LICENSE](LICENSE.txt)).
that your contributions are licensed under the Apache 2.0 license (see [LICENSE](LICENSE)).

## Contributor Conduct
All contributors are expected to adhere to the project's [Code of Conduct](CODE_OF_CONDUCT.md).
Expand Down Expand Up @@ -30,4 +30,4 @@ The main development branch of the repository is `main`.

### Formatting

We use Nick Lockwood's SwiftFormat for formatting code. PRs will not be accepted if they haven't be formatted. The current version of SwiftFormat we are using is v0.48.17.
We use Nick Lockwood's SwiftFormat for formatting code. PRs will not be accepted if they haven't be formatted. The current version of SwiftFormat we are using is v0.51.15.
3 changes: 2 additions & 1 deletion Sources/HBLambdaTest/maths.swift
Expand Up @@ -20,7 +20,6 @@ import Logging

struct DebugMiddleware: HBMiddlewareProtocol {
typealias Context = MathsHandler.Context

func handle(
_ request: HBRequest,
context: Context,
Expand All @@ -35,6 +34,8 @@ struct DebugMiddleware: HBMiddlewareProtocol {

@main
struct MathsHandler: HBAPIGatewayLambda {
typealias Context = HBBasicLambdaRequestContext<APIGatewayRequest>

struct Operands: Decodable {
let lhs: Double
let rhs: Double
Expand Down
15 changes: 11 additions & 4 deletions Tests/HummingbirdLambdaTests/LambdaTests.swift
Expand Up @@ -24,6 +24,8 @@ import XCTest
final class LambdaTests: XCTestCase {
func testSimpleRoute() async throws {
struct HelloLambda: HBAPIGatewayLambda {
typealias Context = HBBasicLambdaRequestContext<APIGatewayRequest>

init(context: LambdaInitializationContext) {}

func buildResponder() -> some HBResponder<Context> {
Expand All @@ -47,6 +49,7 @@ final class LambdaTests: XCTestCase {

func testBase64Encoding() async throws {
struct HelloLambda: HBAPIGatewayLambda {
typealias Context = HBBasicLambdaRequestContext<APIGatewayRequest>
init(context: LambdaInitializationContext) {}
func buildResponder() -> some HBResponder<Context> {
let router = HBRouter(context: Context.self)
Expand All @@ -69,6 +72,7 @@ final class LambdaTests: XCTestCase {

func testHeaderValues() async throws {
struct HelloLambda: HBAPIGatewayLambda {
typealias Context = HBBasicLambdaRequestContext<APIGatewayRequest>
init(context: LambdaInitializationContext) {}

func buildResponder() -> some HBResponder<Context> {
Expand Down Expand Up @@ -101,6 +105,7 @@ final class LambdaTests: XCTestCase {

func testQueryValues() async throws {
struct HelloLambda: HBAPIGatewayLambda {
typealias Context = HBBasicLambdaRequestContext<APIGatewayRequest>
init(context: LambdaInitializationContext) {}

func buildResponder() -> some HBResponder<Context> {
Expand Down Expand Up @@ -129,6 +134,8 @@ final class LambdaTests: XCTestCase {

func testErrorEncoding() async throws {
struct HelloLambda: HBAPIGatewayLambda {
typealias Context = HBBasicLambdaRequestContext<APIGatewayRequest>

static let body = "BadRequest"
init(context: LambdaInitializationContext) {}

Expand All @@ -152,10 +159,7 @@ final class LambdaTests: XCTestCase {

func testSimpleRouteV2() async throws {
struct HelloLambda: HBAPIGatewayV2Lambda {
// define input and output
typealias Event = APIGatewayV2Request
typealias Output = APIGatewayV2Response
typealias Context = HBBasicLambdaRequestContext<Event>
typealias Context = HBBasicLambdaRequestContext<APIGatewayV2Request>

init(context: LambdaInitializationContext) {}

Expand All @@ -180,6 +184,7 @@ final class LambdaTests: XCTestCase {

func testBase64EncodingV2() async throws {
struct HelloLambda: HBAPIGatewayV2Lambda {
typealias Context = HBBasicLambdaRequestContext<APIGatewayV2Request>
init(context: LambdaInitializationContext) {}
func buildResponder() -> some HBResponder<Context> {
let router = HBRouter(context: Context.self)
Expand All @@ -202,6 +207,7 @@ final class LambdaTests: XCTestCase {

func testHeaderValuesV2() async throws {
struct HelloLambda: HBAPIGatewayV2Lambda {
typealias Context = HBBasicLambdaRequestContext<APIGatewayV2Request>
init(context: LambdaInitializationContext) {}

func buildResponder() -> some HBResponder<Context> {
Expand Down Expand Up @@ -234,6 +240,7 @@ final class LambdaTests: XCTestCase {

func testQueryValuesV2() async throws {
struct HelloLambda: HBAPIGatewayV2Lambda {
typealias Context = HBBasicLambdaRequestContext<APIGatewayV2Request>
init(context: LambdaInitializationContext) {}

func buildResponder() -> some HBResponder<Context> {
Expand Down
2 changes: 1 addition & 1 deletion scripts/validate.sh
Expand Up @@ -13,7 +13,7 @@
##
##===----------------------------------------------------------------------===##

SWIFT_FORMAT_VERSION=0.48.17
SWIFT_FORMAT_VERSION=0.51.15

set -eu
here="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
Expand Down

0 comments on commit 7c238af

Please sign in to comment.