Skip to content

Commit

Permalink
chore: merge most recent main into I&A project branch (#1293)
Browse files Browse the repository at this point in the history
* chore!: Require Swift 5.7, fix deprecation warnings (#1173)

* feat: support initial-response in RPC based event streams (#1165)

* chore: bump models (#1178)

Co-authored-by: Sichan Yoo <chanyoo@amazon.com>

* chore: Updates version to 0.28.0

* add visionOS support to useragent (#1182)

* chore: Remove all models before copying in latest versions (#1185)

* chore: update models (#1187)

* chore: Update to aws-crt-swift 0.15.0 (#1188)

* chore: Updates version to 0.29.0

* chore: Update swiftlint to 0.53.0 (#1192)

* chore: End the SDK package manifest with a newline (#1203)

* fix: Update CRT dependency to 0.17.0 (#1210)

* chore: Updates version to 0.30.0

* chore: Clean up unnecessary TODOs + move test functions to a better location (#1209)

* feat: expose presign / presignURL methods in Models.swift to service client object (#1198)

* Add codegen to expose presign / presignURL methods on service client object.

---------

Co-authored-by: Sichan Yoo <chanyoo@amazon.com>

* chore: Bump models in prep for release 0.31.0 (#1218)

* chore: Updates version to 0.31.0

* fix: add s3 control to list of service clients that should have useSignedBodyHeader (#1219)

* update SQS to latest model that uses aws json protocol + add integration test (#1233)

* fix: Fix tests related to operation doc header (#1231)

* fix: Codegen issues re: recursion, Swift keywords in unions (#1237)

* fix: Integration test crashes on failure, build warning (#1239)

* feat!: Replace the XML encoder with a custom Smithy implementation (#1224)

* chore: Modernize the codegen-build-test CI workflow (#1240)

* chore: Modernize the codegen-build-test-on-comment CI workflow (#1243)

* fix: Fix ref used for smithy-swift checkout in codegen-build-test-on-comment (#1244)

* feat!: Use closures for processing HTTP response (#1242)

* add IsTruncated pagination customization for S3 ListParts (#1245)

* feat: Publish documentation to public distribution (#1232)

* fix: Fix script for extracting version from GH ref (#1247)

* chore: Codegen dev script takes args for manifest generator (#1246)

* fix: Use bash to run doc generator version step (#1248)

* chore: Update models (#1252)

* chore: Updates version to 0.32.0

* fix: DocC post-testing fixes (#1249)

* chore: Run tvOS old & new in CI (#1253)

* feat: Package manifest generator improvements (#1250)

* fix: Use new manifest generator options to run protocol & unit tests in CI (#1257)

* chore: remove use of HttpBody and replace with ByteStream (#1254)

* fix: Remove codegen-build-test-on-comment workflow (#1262)

* chore: update smithy to 1.42.0 (#1261)

* feat: Add codegen-build-test workflow to pull requests (#1263)

* fix: codegen-build-test with workflow dispatch & custom branch names (#1265)

* fix integration tests (#1268)

* chore: bump models (#1270)

* chore: Updates version to 0.33.0

* fix: Batch documentation modules properly (#1274)

* chore: Update to aws-crt-swift 0.20.0 (#1275)

* fix: update partitions to latest fixes failing endpoints tests (#1277)

* feat: handle errors in 200 response from S3 (#1266)

* chore: Use Xcode 15.1 as CI latest version (#1286)

* Delete unnecessary TODO item. (#1288)

Co-authored-by: Sichan Yoo <chanyoo@amazon.com>

* Update models.

* feat!: Use Foundation-based HTTP client on Apple platforms (#1282)

* Fix models.

* Fix test cases to reflect I&A codegen changes.

---------

Co-authored-by: Josh Elkins <jbelkins@users.noreply.github.com>
Co-authored-by: David Yaffe <dayaffe@amazon.com>
Co-authored-by: Sichan Yoo <chanyoo@amazon.com>
Co-authored-by: AWS SDK Swift Automation <github-aws-sdk-swift-automation@amazon.com>
  • Loading branch information
5 people authored Jan 11, 2024
1 parent badc4a4 commit f68dfeb
Show file tree
Hide file tree
Showing 1,846 changed files with 913,601 additions and 94,481 deletions.
94 changes: 0 additions & 94 deletions .github/workflows/codegen-build-test-on-comment.yml

This file was deleted.

78 changes: 39 additions & 39 deletions .github/workflows/codegen-build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,64 +4,64 @@ name: Codegen, Build, and Test

on:
workflow_dispatch:
pull_request:

env:
BUILDER_VERSION: v0.8.19
BUILDER_SOURCE: releases
# host owned by CRT team to host aws-crt-builder releases. Contact their on-call with any issues
BUILDER_HOST: https://d19elf31gohf1l.cloudfront.net
PACKAGE_NAME: aws-sdk-swift
LINUX_BASE_IMAGE: ubuntu-16-x64
RUN: ${{ github.run_id }}-${{ github.run_number }}
AWS_SDK_SWIFT_CI_DIR: /Users/runner/work/aws-sdk-swift/aws-sdk-swift
AWS_CRT_SWIFT_CI_DIR: /Users/runner/work/aws-sdk-swift/aws-sdk-swift/target/build/deps/aws-crt-swift
SMITHY_SWIFT_CI_DIR: /Users/runner/work/aws-sdk-swift/aws-sdk-swift/target/build/deps/smithy-swift
AWS_SWIFT_SDK_USE_LOCAL_DEPS: 1

jobs:
codegen-build-test:
runs-on: macos-13
environment: Codegen-Build-Test
env:
DEVELOPER_DIR: /Applications/Xcode_14.3.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_15.1.app/Contents/Developer
steps:
- name: Checkout sources
- name: Checkout aws-sdk-swift
uses: actions/checkout@v3
- name: Restore Cache
- name: Select smithy-swift branch
run: |
ORIGINAL_REPO_HEAD_REF="${GITHUB_HEAD_REF:-$GITHUB_REF_NAME}" \
DEPENDENCY_REPO_URL="https://github.com/smithy-lang/smithy-swift.git" \
./scripts/ci_steps/select_dependency_branch.sh
- name: Checkout smithy-swift
uses: actions/checkout@v3
with:
repository: smithy-lang/smithy-swift
ref: ${{ env.DEPENDENCY_REPO_SHA }}
path: smithy-swift
- name: Move smithy-swift into place
run: mv smithy-swift ..
- name: Cache Gradle
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
key: 1-${{ runner.os }}-gradle-${{ hashFiles('settings.gradle.kts', 'gradle/wrapper/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Set up Java (Corretto 17)
1-${{ runner.os }}-gradle-${{ hashFiles('settings.gradle.kts', 'gradle/wrapper/gradle-wrapper.properties') }}
1-${{ runner.os }}-gradle-
- name: Cache Swift
uses: actions/cache@v3
with:
path: |
~/Library/Caches/org.swift.swiftpm
~/.cache/org.swift.swiftpm
key: 1-${{ runner.os }}-${{ matrix.xcode }}-${{ hashFiles('Package.swift', 'AWSSDKSwiftCLI/Package.swift') }}
restore-keys: |
1-${{ runner.os }}-${{ matrix.xcode }}-${{ hashFiles('Package.swift', 'AWSSDKSwiftCLI/Package.swift') }}
1-${{ runner.os }}-${{ matrix.xcode }}-
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '17'
distribution: corretto
java-version: 17
- name: Tools Versions
run: ./scripts/ci_steps/log_tool_versions.sh
- name: Code-Generate SDK
run: ./scripts/ci_steps/codegen_sdk.sh
- name: Build and Run Unit Tests
run: |
which swiftc
swiftc --version
echo
which xcodebuild
xcodebuild -version
echo
which java
java --version
- name: Build and Test ${{ env.PACKAGE_NAME }}
run: |
python3 -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
chmod a+x builder.pyz
./builder.pyz build -p ${{ env.PACKAGE_NAME }}
./gradlew -p codegen/sdk-codegen build
./gradlew -p codegen/sdk-codegen stageSdks
./gradlew --stop
./scripts/mergeModels.sh Sources/Services
cd AWSSDKSwiftCLI
swift run AWSSDKSwiftCLI generate-package-manifest ../
cd ..
cat Package.swift
swift build --build-tests
swift test --skip-build
24 changes: 15 additions & 9 deletions .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,23 +21,29 @@ jobs:
- macos-13
xcode:
- Xcode_14.0.1
- Xcode_15.0
- Xcode_15.1
destination:
- 'platform=iOS Simulator,OS=16.0,name=iPhone 13'
- 'platform=iOS Simulator,OS=17.0,name=iPhone 14'
- 'platform=iOS Simulator,OS=16.0,name=iPhone 14'
- 'platform=iOS Simulator,OS=17.2,name=iPhone 15'
- 'platform=tvOS Simulator,OS=16.0,name=Apple TV 4K (at 1080p) (2nd generation)'
- 'platform=tvOS Simulator,OS=17.2,name=Apple TV 4K (3rd generation) (at 1080p)'
- 'platform=OS X'
exclude:
# Don't run old macOS with new Xcode
- runner: macos-12
xcode: Xcode_15.0
xcode: Xcode_15.1
# Don't run new macOS with old Xcode
- runner: macos-13
xcode: Xcode_14.0.1
# Don't run old iOS simulator with new Xcode
- destination: 'platform=iOS Simulator,OS=16.0,name=iPhone 13'
xcode: Xcode_15.0
# Don't run new iOS simulator with old Xcode
- destination: 'platform=iOS Simulator,OS=17.0,name=iPhone 14'
# Don't run old simulators with new Xcode
- destination: 'platform=tvOS Simulator,OS=16.0,name=Apple TV 4K (at 1080p) (2nd generation)'
xcode: Xcode_15.1
- destination: 'platform=iOS Simulator,OS=16.0,name=iPhone 14'
xcode: Xcode_15.1
# Don't run new simulators with old Xcode
- destination: 'platform=tvOS Simulator,OS=17.2,name=Apple TV 4K (3rd generation) (at 1080p)'
xcode: Xcode_14.0.1
- destination: 'platform=iOS Simulator,OS=17.2,name=iPhone 15'
xcode: Xcode_14.0.1
steps:
- name: Checkout aws-sdk-swift
Expand Down
98 changes: 98 additions & 0 deletions .github/workflows/generate-documentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: Generate Documentation

on:
release:
types: [published]

permissions:
id-token: write

jobs:
generate-docs:
strategy:
fail-fast: false
matrix:
# Use strategy to split up the work into 32 jobs
job: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]
runs-on: ubuntu-latest
container: swift:5.9-jammy
env:
IGNORE: none
outputs:
version: ${{ steps.set-version.outputs.version }}
steps:
- name: Checkout Sources
uses: actions/checkout@v4
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.CD_API_REFS_PUBLISH_ROLE_ARN }}
aws-region: us-east-1
- name: Install AWS CLI, jq, and native dependencies
run: |
DEBIAN_FRONTEND="noninteractive" apt-get update
apt-get -y install curl unzip openssl libssl-dev jq
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip && ./aws/install
- name: Extract version from GITHUB_REF
id: set-version
shell: bash
run: |
if [[ $GITHUB_REF == refs/tags/* ]]; then
echo "Tagged release"
# get last part of GITHUB_REF separated by /
VERSION=`echo $GITHUB_REF | tr '/' '\n' | tail -1`
echo "Version: $VERSION"
echo "VERSION=$VERSION" >> "$GITHUB_ENV"
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
else
echo "Error: runs on a tag only"
exit 1
fi
- name: Generate docs
run: |
DOCS_BUCKET=${{ secrets.CD_API_REFS_BUCKET_NAME }} \
./scripts/generatedocc.sh "$VERSION" ${{ matrix.job }} ${{ strategy.job-total }} ${{ env.IGNORE }}
update-latest:
needs: generate-docs
runs-on: ubuntu-latest
steps:
- name: Configure AWS Credentials for publish role
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.CD_API_REFS_PUBLISH_ROLE_ARN }}
aws-region: us-east-1
- name: Install AWS CLI
run: |
# Need to install aws cli from latest since GH runner doesn't yet have
# cloudfront-keyvaluestore in the preinstalled version
DEBIAN_FRONTEND="noninteractive" sudo apt-get update
sudo apt-get -y install curl unzip
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip && sudo ./aws/install --update
- name: Update Cloudfront key value store
env:
VERSION: ${{ needs.generate-docs.outputs.version }}
run: |
export KVS_ETAG=`aws cloudfront-keyvaluestore describe-key-value-store \
--output text \
--query ETag \
--kvs-arn "${{ secrets.CD_CLOUDFRONT_KVS_ARN }}"`
aws cloudfront-keyvaluestore put-key \
--kvs-arn "${{ secrets.CD_CLOUDFRONT_KVS_ARN }}" \
--if-match "$KVS_ETAG" \
--key latest \
--value "$VERSION"
- name: Configure AWS Credentials for invalidation role
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.CD_API_REFS_INVALIDATE_ROLE_ARN }}
aws-region: us-east-1
role-chaining: true
role-skip-session-tagging: true
- name: Invalidate sdk.amazonaws.com cache
run: |
aws cloudfront create-invalidation \
--distribution-id "${{ secrets.CD_CLOUDFRONT_PUBLIC_DISTRIBUTION_ID }}" \
--paths "/swift/*"
9 changes: 3 additions & 6 deletions AWSSDKSwiftCLI/Package.swift
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
// swift-tools-version: 5.5
// The swift-tools-version declares the minimum version of Swift required to build this package.
// swift-tools-version: 5.7

import PackageDescription

Expand All @@ -24,10 +23,8 @@ let package = Package(
.product(name: "Logging", package: "swift-log"),
],
resources: [
.process("Resources/Package.Base.swift")
],
swiftSettings: [
.unsafeFlags(["-package-description-version", "5.7"])
.process("Resources/Package.Base.swift"),
.process("Resources/DocIndex.Base.md")
]
),
.testTarget(
Expand Down
3 changes: 2 additions & 1 deletion AWSSDKSwiftCLI/Sources/AWSSDKSwiftCLI/AWSSDKSwiftCLI.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ struct AWSSDKSwiftCLI: ParsableCommand {
GeneratePackageManifestCommand.self,
PrepareReleaseCommand.self,
SyncClientRuntimeVersionCommand.self,
TestAWSSDKCommand.self
TestAWSSDKCommand.self,
GenerateDocIndexCommand.self
]
)
}
Loading

0 comments on commit f68dfeb

Please sign in to comment.