Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
aws-sam-cli-bot committed Feb 10, 2023
2 parents 5611362 + d737065 commit cd79e90
Show file tree
Hide file tree
Showing 84 changed files with 4,178 additions and 101 deletions.
28 changes: 28 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
version: 2
updates:

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
commit-message:
prefix: chore
include: scope
reviewers:
- aws/serverless-application-experience-sbt

- package-ecosystem: "pip"
directory: "/requirements"
schedule:
interval: "weekly"
target-branch: "develop"
commit-message:
prefix: chore
include: scope
reviewers:
- aws/serverless-application-experience-sbt
ignore:
# The dependencies are intentionally pinned to certain
# version ranges for specific Python versions
- dependency-name: "flake8"
- dependency-name: "isort"
58 changes: 57 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ jobs:
- python-integration
- ruby-integration
- dotnet-integration
- rust-cargo-lambda-integration
steps:
- name: report-failure
if: |
Expand All @@ -33,7 +34,8 @@ jobs:
needs.custom-make-integration.result != 'success' ||
needs.python-integration.result != 'success' ||
needs.ruby-integration.result != 'success' ||
needs.dotnet-integration.result != 'success'
needs.dotnet-integration.result != 'success' ||
needs.rust-cargo-lambda-integration.result != 'success'
run: exit 1
- name: report-success
run: exit 0
Expand Down Expand Up @@ -296,3 +298,57 @@ jobs:
python-version: ${{ matrix.python }}
- run: make init
- run: pytest -vv tests/integration/workflows/dotnet_clipackage

rust-cargo-lambda-integration:
name: ${{ matrix.os }} / ${{ matrix.python }} / rust-cargo-lambda
if: github.repository_owner == 'aws'
runs-on: ${{ matrix.os }}
env:
CARGO_LAMBDA_VERSION: 0.15.0
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
python:
- "3.9"
- "3.8"
- "3.7"
rust:
- stable
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}

# Install and configure Rust
- name: Install rustup
run: |
: install rustup if needed
if ! command -v rustup &> /dev/null ; then
curl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused -fsSL "https://sh.rustup.rs" | sh -s -- --default-toolchain none -y
echo "${CARGO_HOME:-$HOME/.cargo}/bin" >> $GITHUB_PATH
fi
if: ${{ matrix.os }} == 'ubuntu-latest'
- name: rustup toolchain install ${{ matrix.rust }}
run: rustup toolchain install ${{ matrix.rust }} --profile minimal --no-self-update
- run: rustup default ${{ matrix.rust }}
- run: |
: disable incremental compilation
echo CARGO_INCREMENTAL=0 >> $GITHUB_ENV
- run: |
: enable colors in Cargo output
echo CARGO_TERM_COLOR=always >> $GITHUB_ENV
# Install and configure Cargo Lambda
- name: Install Cargo Lambda
run: pip install cargo-lambda==$CARGO_LAMBDA_VERSION
- run: echo "$HOME/.local/bin" >> $GITHUB_PATH

- run: make init
- run: pytest -vv tests/integration/workflows/rust_cargo
2 changes: 1 addition & 1 deletion .github/workflows/pr-labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v5
- uses: actions/github-script@v6
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
Expand Down
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@ init:
LAMBDA_BUILDERS_DEV=1 pip install -e '.[dev]'

test:
# Run unit tests
# Run unit and functional tests
# Fail if coverage falls below 94%
LAMBDA_BUILDERS_DEV=1 pytest -vv --cov aws_lambda_builders --cov-report term-missing --cov-fail-under 94 tests/unit tests/functional

unit-test:
LAMBDA_BUILDERS_DEV=1 pytest tests/unit

func-test:
LAMBDA_BUILDERS_DEV=1 pytest tests/functional

Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Lambda Builders currently contains the following workflows
* Typescript with esbuild
* Ruby with Bundler
* Go with Mod
* Rust with Cargo

In Addition to above workflows, AWS Lambda Builders also supports *Custom Workflows* through a Makefile.

Expand Down
2 changes: 1 addition & 1 deletion aws_lambda_builders/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@

# Changing version will trigger a new release!
# Please make the version change as the last step of your development.
__version__ = "1.26.0"
__version__ = "1.27.0"
RPC_PROTOCOL_VERSION = "0.3"
8 changes: 4 additions & 4 deletions aws_lambda_builders/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@
Read the design document for explanation of the JSON-RPC interface
"""

import sys
import json
import os
import logging
import os
import re
import sys

from aws_lambda_builders import RPC_PROTOCOL_VERSION as lambda_builders_protocol_version
from aws_lambda_builders.architecture import X86_64
from aws_lambda_builders.builder import LambdaBuilder
from aws_lambda_builders.exceptions import WorkflowNotFoundError, WorkflowUnknownError, WorkflowFailedError
from aws_lambda_builders import RPC_PROTOCOL_VERSION as lambda_builders_protocol_version
from aws_lambda_builders.exceptions import WorkflowFailedError, WorkflowNotFoundError, WorkflowUnknownError

log_level = int(os.environ.get("LAMBDA_BUILDERS_LOG_LEVEL", logging.INFO))

Expand Down
2 changes: 1 addition & 1 deletion aws_lambda_builders/actions.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import os
import shutil
from pathlib import Path
from typing import Set, Iterator, Tuple
from typing import Iterator, Set, Tuple

from aws_lambda_builders import utils
from aws_lambda_builders.utils import copytree
Expand Down
4 changes: 2 additions & 2 deletions aws_lambda_builders/builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
"""

import importlib
import os
import logging
import os

from aws_lambda_builders.architecture import X86_64
from aws_lambda_builders.registry import get_workflow, DEFAULT_REGISTRY
from aws_lambda_builders.registry import DEFAULT_REGISTRY, get_workflow
from aws_lambda_builders.workflow import Capability

LOG = logging.getLogger(__name__)
Expand Down
4 changes: 2 additions & 2 deletions aws_lambda_builders/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
Common utilities for the library
"""

import logging
import os
import shutil
import sys
import os
import logging
from pathlib import Path
from typing import Union

Expand Down
3 changes: 1 addition & 2 deletions aws_lambda_builders/validator.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@
import logging

from aws_lambda_builders.architecture import ARM64, X86_64
from aws_lambda_builders.exceptions import UnsupportedRuntimeError, UnsupportedArchitectureError

from aws_lambda_builders.exceptions import UnsupportedArchitectureError, UnsupportedRuntimeError

LOG = logging.getLogger(__name__)

Expand Down
18 changes: 8 additions & 10 deletions aws_lambda_builders/workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,24 @@
Implementation of a base workflow
"""
import functools
import os
import logging

import os
from collections import namedtuple
from enum import Enum
from typing import Optional

from aws_lambda_builders.actions import ActionFailedError
from aws_lambda_builders.architecture import X86_64
from aws_lambda_builders.binary_path import BinaryPath
from aws_lambda_builders.path_resolver import PathResolver
from aws_lambda_builders.validator import RuntimeValidator
from aws_lambda_builders.registry import DEFAULT_REGISTRY
from aws_lambda_builders.exceptions import (
WorkflowFailedError,
WorkflowUnknownError,
MisMatchRuntimeError,
RuntimeValidatorError,
WorkflowFailedError,
WorkflowUnknownError,
)
from aws_lambda_builders.actions import ActionFailedError
from aws_lambda_builders.architecture import X86_64

from aws_lambda_builders.path_resolver import PathResolver
from aws_lambda_builders.registry import DEFAULT_REGISTRY
from aws_lambda_builders.validator import RuntimeValidator

LOG = logging.getLogger(__name__)

Expand Down
11 changes: 6 additions & 5 deletions aws_lambda_builders/workflows/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
Officially supported builder workflows
"""

import aws_lambda_builders.workflows.python_pip
import aws_lambda_builders.workflows.nodejs_npm
import aws_lambda_builders.workflows.ruby_bundler
import aws_lambda_builders.workflows.custom_make
import aws_lambda_builders.workflows.dotnet_clipackage
import aws_lambda_builders.workflows.go_modules
import aws_lambda_builders.workflows.java_gradle
import aws_lambda_builders.workflows.java_maven
import aws_lambda_builders.workflows.dotnet_clipackage
import aws_lambda_builders.workflows.custom_make
import aws_lambda_builders.workflows.nodejs_npm
import aws_lambda_builders.workflows.nodejs_npm_esbuild
import aws_lambda_builders.workflows.python_pip
import aws_lambda_builders.workflows.ruby_bundler
import aws_lambda_builders.workflows.rust_cargo
3 changes: 2 additions & 1 deletion aws_lambda_builders/workflows/custom_make/actions.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
import logging
from pathlib import Path

from aws_lambda_builders.actions import BaseAction, Purpose, ActionFailedError
from aws_lambda_builders.actions import ActionFailedError, BaseAction, Purpose

from .exceptions import MakeFileNotFoundError
from .make import MakeExecutionError

Expand Down
9 changes: 5 additions & 4 deletions aws_lambda_builders/workflows/custom_make/workflow.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
"""
ProvidedMakeWorkflow
"""
from aws_lambda_builders.workflows.custom_make.validator import CustomMakeRuntimeValidator
from aws_lambda_builders.workflow import BaseWorkflow, Capability, BuildInSourceSupport, BuildDirectory
from aws_lambda_builders.actions import CopySourceAction
from aws_lambda_builders.path_resolver import PathResolver
from aws_lambda_builders.workflow import BaseWorkflow, BuildDirectory, BuildInSourceSupport, Capability
from aws_lambda_builders.workflows.custom_make.validator import CustomMakeRuntimeValidator

from ...exceptions import WorkflowFailedError
from .actions import CustomMakeAction
from .utils import OSUtils
from .make import SubProcessMake
from ...exceptions import WorkflowFailedError
from .utils import OSUtils


class CustomMakeWorkflow(BaseWorkflow):
Expand Down
11 changes: 6 additions & 5 deletions aws_lambda_builders/workflows/dotnet_clipackage/actions.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@
Actions for .NET dependency resolution with CLI Package
"""

import threading
import os
import logging
import os
import threading

from aws_lambda_builders.actions import BaseAction, Purpose, ActionFailedError
from aws_lambda_builders.workflow import BuildMode
from aws_lambda_builders.actions import ActionFailedError, BaseAction, Purpose
from aws_lambda_builders.architecture import ARM64
from .utils import OSUtils
from aws_lambda_builders.workflow import BuildMode

from .dotnetcli import DotnetCLIExecutionError
from .utils import OSUtils

LOG = logging.getLogger(__name__)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
Wrapper around calls to dotent CLI through a subprocess.
"""

import logging
import locale
import logging

from .utils import OSUtils

Expand Down
1 change: 1 addition & 0 deletions aws_lambda_builders/workflows/dotnet_clipackage/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import platform
import subprocess
import zipfile

from aws_lambda_builders.utils import which

LOG = logging.getLogger(__name__)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""
.NET Core CLI Package Workflow
"""
from aws_lambda_builders.workflow import BaseWorkflow, BuildDirectory, Capability, BuildInSourceSupport
from aws_lambda_builders.workflow import BaseWorkflow, BuildDirectory, BuildInSourceSupport, Capability

from .actions import GlobalToolInstallAction, RunPackageAction
from .dotnetcli import SubprocessDotnetCLI
Expand Down
3 changes: 2 additions & 1 deletion aws_lambda_builders/workflows/go_modules/actions.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
Action to build a Go project using standard Go tooling
"""

from aws_lambda_builders.actions import BaseAction, Purpose, ActionFailedError
from aws_lambda_builders.actions import ActionFailedError, BaseAction, Purpose

from .builder import BuilderError


Expand Down
2 changes: 1 addition & 1 deletion aws_lambda_builders/workflows/go_modules/builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
import logging
from pathlib import Path

from aws_lambda_builders.workflow import BuildMode
from aws_lambda_builders.architecture import X86_64
from aws_lambda_builders.utils import get_goarch
from aws_lambda_builders.workflow import BuildMode

LOG = logging.getLogger(__name__)

Expand Down
4 changes: 2 additions & 2 deletions aws_lambda_builders/workflows/go_modules/validator.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
"""

import logging
import re
import os
import re
import subprocess

from aws_lambda_builders.validator import RuntimeValidator
from aws_lambda_builders.exceptions import MisMatchRuntimeError
from aws_lambda_builders.validator import RuntimeValidator

LOG = logging.getLogger(__name__)

Expand Down
4 changes: 2 additions & 2 deletions aws_lambda_builders/workflows/go_modules/workflow.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
"""
Go Modules Workflow
"""
from aws_lambda_builders.workflow import BaseWorkflow, BuildDirectory, Capability, BuildInSourceSupport
from aws_lambda_builders.workflow import BaseWorkflow, BuildDirectory, BuildInSourceSupport, Capability

from .actions import GoModulesBuildAction
from .builder import GoModulesBuilder
from .validator import GoRuntimeValidator
from .utils import OSUtils
from .validator import GoRuntimeValidator


class GoModulesWorkflow(BaseWorkflow):
Expand Down
Loading

0 comments on commit cd79e90

Please sign in to comment.