Skip to content

Commit

Permalink
Merge pull request #629 from aws-amplify/fix-e2e-cb
Browse files Browse the repository at this point in the history
  • Loading branch information
phani-srikar authored Jul 14, 2023
2 parents 7397ab9 + f3d2753 commit 225ad09
Show file tree
Hide file tree
Showing 3 changed files with 95 additions and 0 deletions.
Empty file modified .codebuild/scripts/run-ios-modelgen-e2e-test.sh
100644 → 100755
Empty file.
37 changes: 37 additions & 0 deletions .github/workflows/build-swift-modelgen.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: 'Test compiling Swift Modelgen output'

on:
workflow_dispatch:
inputs:
MODELS_S3_URL:
description: 'S3 URL for models'
required: true

env:
MODELS_S3_URL: ${{ inputs.MODELS_S3_URL }}

jobs:
Build-Swift-Modelgen:
name: Analyze
runs-on: macos-13-xl
permissions:
actions: read
contents: read

strategy:
fail-fast: true

steps:
- name: Mask S3 URL
run: echo "::add-mask::$MODELS_S3_URL"

- name: Checkout repository
uses: actions/checkout@v3

- name: Check Xcode and Swift versions
run: |
xcodebuild -version
swift --version
- name: Build Swift Models
run: ./scripts/test-swift-modelgen.sh
58 changes: 58 additions & 0 deletions scripts/test-swift-modelgen.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/bin/bash

# set exit on error to true
set -e

function buildModels() {
# download and unzip the models from S3
tempDirectory=$(mktemp -d)
cd $tempDirectory
wget -O models.zip "$MODELS_S3_URL"
tar -xvf models.zip

# create a Swift package to test the models
pathToSwiftPackage=${tempDirectory}/swiftapp
rm -rf $pathToSwiftPackage
mkdir $pathToSwiftPackage && cd $pathToSwiftPackage
echo "Creating Swift package at $pathToSwiftPackage"
createSwiftPackage

cd ${tempDirectory}/models
for model in */; do
echo "Building model $model"
buildAndRunModel $model $pathToSwiftPackage
done
}

function buildAndRunModel() {
modelName=$1
cd $modelName
currentDirectory=$(pwd)

pathToSwiftPackage=$2

# copy with replace all files in current directory to the swift package
mkdir -p $pathToSwiftPackage/Sources/models
rm -rf $pathToSwiftPackage/Sources/models/*
cp -r $currentDirectory/* $pathToSwiftPackage/Sources/models

# build and run the model
cd $pathToSwiftPackage
swift build && swift run

# clean up
cd $currentDirectory
}

function createSwiftPackage() {
# create a swift package
swift package init --type executable
rm -rf Package.swift
echo '// swift-tools-version: 5.7
import PackageDescription
let package = Package(name: "swiftapp", platforms: [.macOS(.v10_15)], dependencies: [.package(url: "https://github.com/aws-amplify/amplify-swift", from: "2.12.0") ], targets: [ .executableTarget( name: "swiftapp", dependencies: [ .product(name: "Amplify", package: "amplify-swift") ], path: "Sources")]
)' >> Package.swift
cat Package.swift
}

buildModels

0 comments on commit 225ad09

Please sign in to comment.