Skip to content

Commit

Permalink
Merge pull request #9 from adobe/dev
Browse files Browse the repository at this point in the history
Beta release
  • Loading branch information
kevinlind authored Mar 9, 2023
2 parents 4e204a7 + 2aab69b commit 45127b0
Show file tree
Hide file tree
Showing 149 changed files with 21,351 additions and 1 deletion.
163 changes: 163 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
# For a detailed guide to building and testing on iOS, read the docs:
# https://circleci.com/docs/2.0/testing-ios/

version: 2.1

orbs:
codecov: codecov/[email protected]
macos: circleci/macos@2

# Workflows orchestrate a set of jobs to be run;
workflows:
version: 2
build-test:
jobs:
- validate-code
- test-ios:
requires:
- validate-code
- test-tvos:
requires:
- validate-code
- build_xcframework_and_app:
requires:
- validate-code

commands:
install_dependencies:
steps:
# restore pods related caches
- restore_cache:
name: Restoring Gemfile Cache
keys:
- 1-gems-{{ checksum "Gemfile.lock" }}

# make sure we're on the right version of cocoapods
- run:
name: Verify Cocoapods Version
command: bundle check || bundle install --path vendor/bundle

# save cocoapods version gem data
- save_cache:
name: Saving Gemfile Cache
key: 1-gems-{{ checksum "Gemfile.lock" }}
paths:
- vendor/bundle

# restore pods related caches
- restore_cache:
name: Restoring CocoaPods Cache
keys:
- cocoapods-cache-v1-{{ arch }}-{{ .Branch }}-{{ checksum "Podfile.lock" }}
- cocoapods-cache-v1-{{ arch }}-{{ .Branch }}
- cocoapods-cache-v1

# install CocoaPods - using default CocoaPods version, not the bundle
- run:
name: Repo Update & Install CocoaPods
command: make ci-pod-install

# save pods related files
- save_cache:
name: Saving CocoaPods Cache
key: cocoapods-cache-v1-{{ arch }}-{{ .Branch }}-{{ checksum "Podfile.lock" }}
paths:
- ./Pods

prestart_ios_simulator:
steps:
- macos/preboot-simulator:
platform: "iOS"
device: "iPhone 8"

prestart_tvos_simulator:
steps:
- macos/preboot-simulator:
platform: "tvOS"
device: "Apple TV"

jobs:

working_directory: ~/project

validate-code:
macos:
xcode: 13.4.0 # Specify the Xcode version to use

steps:
- checkout

- install_dependencies

- run:
name: Lint Source Code
command: make lint

test-ios:
macos:
xcode: 13.4.0 # Specify the Xcode version to use

steps:
- checkout

- install_dependencies

# pre-start the simulator to prevent timeouts
- prestart_ios_simulator

- run:
name: Run iOS Tests
command: make test-ios

# Code coverage upload using Codecov
# See options explanation here: https://docs.codecov.com/docs/codecov-uploader
- codecov/upload:
flags: ios-tests
upload_name: Coverage Report for iOS Tests
xtra_args: -c -v --xc --xp iosresults.xcresult


test-tvos:
macos:
xcode: 13.4.0 # Specify the Xcode version to use

steps:
- checkout

- install_dependencies

# pre-start the simulator to prevent timeouts
- prestart_tvos_simulator

- run:
name: Run tvOS Tests
command: make test-tvos

# Code coverage upload using Codecov
# See options explanation here: https://docs.codecov.com/docs/codecov-uploader
- codecov/upload:
flags: tvos-tests
upload_name: Coverage Report for tvOS Tests
xtra_args: -c -v --xc --xp tvosresults.xcresult

build_xcframework_and_app:
macos:
xcode: 13.4.0 # Specify the Xcode version to use

steps:
- checkout
# verify XCFramework archive builds
- run:
name: Build XCFramework
command: |
if [ "${CIRCLE_BRANCH}" == "main" ]; then
make archive
fi
# verify test app builds
- run:
name: Build Test App
command: |
if [ "${CIRCLE_BRANCH}" == "main" ]; then
make build-app
fi
31 changes: 31 additions & 0 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash
SWIFTLINT=./Pods/SwiftLint/swiftlint
CONFIG=.swiftlint.yml

if ! command -v "${SWIFTLINT}" &> /dev/null; then
echo "${SWIFTLINT} is not installed. Please run 'pod install'."
exit 0
fi

echo "SwiftLint $(${SWIFTLINT} version)"

count=0

# Changed files added to stage
for file_path in $(git diff --cached --name-only --diff-filter=d | grep ".swift$"); do
export SCRIPT_INPUT_FILE_$count=$file_path
count=$((count + 1))
done

if [ "$count" -ne 0 ]; then
export SCRIPT_INPUT_FILE_COUNT=$count
$SWIFTLINT --fix --config $CONFIG --use-script-input-files --force-exclude --format
else
echo "No files to lint!"
exit 0
fi

# Re-add changes to files in stage area
for file_path in $(git diff --cached --name-only --diff-filter=d | grep ".swift$"); do
git add "$file_path"
done
47 changes: 47 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Contributing

Thanks for choosing to contribute!

The following are a set of guidelines to follow when contributing to this project.

## Code Of Conduct

This project adheres to the Adobe [code of conduct](../CODE_OF_CONDUCT.md). By participating,
you are expected to uphold this code. Please report unacceptable behavior to
[[email protected]](mailto:[email protected]).

## Have A Question?

Start by filing an issue. The existing committers on this project work to reach
consensus around project direction and issue solutions within issue threads
(when appropriate).

## Contributor License Agreement

All third-party contributions to this project must be accompanied by a signed contributor
license agreement. This gives Adobe permission to redistribute your contributions
as part of the project. [Sign our CLA](https://opensource.adobe.com/cla.html). You
only need to submit an Adobe CLA one time, so if you have submitted one previously,
you are good to go!

## Code Reviews

All submissions should come in the form of pull requests and need to be reviewed
by project committers. Read [GitHub's pull request documentation](https://help.github.com/articles/about-pull-requests/)
for more information on sending pull requests.

Lastly, please follow the [pull request template](PULL_REQUEST_TEMPLATE.md) when
submitting a pull request!

## From Contributor To Committer

We love contributions from our community! If you'd like to go a step beyond contributor
and become a committer with full write access and a say in the project, you must
be invited to the project. The existing committers employ an internal nomination
process that must reach lazy consensus (silence is approval) before invitations
are issued. If you feel you are qualified and want to get more deeply involved,
feel free to reach out to existing committers to have a conversation about that.

## Security Issues

Security issues shouldn't be reported on this issue tracker. Instead, [file an issue to our security experts](https://helpx.adobe.com/security/alertus.html).
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
name: Blank issue
labels: task
---
## Prerequisites
<!--- Go through the items below before logging an issue -->
- [ ] I have searched in this repository's issues to see if it has already been reported.
- [ ] This is not a Security Disclosure, otherwise please follow the guidelines in [Security Policy](https://github.com/adobe/aepsdk-edgemedia-ios/security/policy).
70 changes: 70 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Bug report
description: Create a bug report to help us improve. Use this template if you encountered an issue while integrating with or implementing the APIs of this SDK.
labels: [bug, triage-required]

body:
- type: checkboxes
attributes:
label: Prerequisites
description: Please check the following items before logging a new bug report.
options:
- label: This is not a Security Disclosure, otherwise please follow the guidelines in [Security Policy](https://github.com/adobe/aepsdk-edgemedia-ios/security/policy).
required: true
- label: I have searched in this repository's issues to see if it has already been reported.
required: true
- label: I have updated to the latest released version of the SDK and the issue still persists.
required: true

- type: textarea
attributes:
label: Bug summary
description: Please provide a summary of the bug you are reporting.
validations:
required: true

- type: textarea
attributes:
label: Environment
description: |
Please provide the OS version, SDK version(s) used, IDE version, and any other specific settings that could help us narrow down the problem.
Example:
- **OS**: iOS 15.5
- **SDK(s)**: AEPEdgeMedia 1.0.0, AEPEdge 1.4.0, AEPCore 1.7.0
- **IDE**: Xcode 13.4
validations:
required: true

- type: textarea
attributes:
label: Steps to reproduce
description: Steps to reproduce the behavior consistently.
placeholder: |
1. ...
2. ...
3. ...
validations:
required: false

- type: textarea
attributes:
label: Current behavior
description: A concise description of what you are experiencing.
validations:
required: false

- type: textarea
attributes:
label: Expected behavior
description: A concise description of what you expected to happen.
validations:
required: false

- type: textarea
attributes:
label: Anything else?
description: |
Here you can include sample code that illustrates the problem, logs taken while reproducing the problem, or anything that can give us more context about the issue you are encountering.
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
validations:
required: false
43 changes: 43 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Feature request
description: Suggest an idea for this project.
labels: [feature-request, triage-required]

body:
- type: checkboxes
attributes:
label: Prerequisites
description: Please check the following items before logging a new feature request.
options:
- label: This is not a Security Disclosure, otherwise please follow the guidelines in [Security Policy](https://github.com/adobe/aepsdk-edgemedia-ios/security/policy).
required: true
- label: I have searched in this repository's issues to see if it has already been reported.
required: true

- type: textarea
id: description
attributes:
label: Feature request summary
description: Please provide a summary of the feature.
validations:
required: true

- type: textarea
attributes:
label: Current behavior
description: A concise description of what you are experiencing.
validations:
required: false

- type: textarea
attributes:
label: Expected behavior
description: A concise description of what you expected to happen.
validations:
required: false

- type: textarea
attributes:
label: Additional implementation details or code snippets
description: Provide additional information about this request, implementation details or code snippets.
validations:
required: false
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/project_epic.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Project epic
description: Create an internal epic that represents the top level parent of multiple tasks.
labels: [epic]

body:
- type: textarea
id: description
attributes:
label: Epic description
description: Please provide a detailed description for this epic.
validations:
required: true

- type: textarea
id: tasks
attributes:
label: Tasks
description: |
Provide a high-level definition of done for this epic as a list of tasks that need to be completed.
Tip: List out the task links if they already exist or list them out as text with a descriptive title so they can be easily converted to task items.
placeholder: |
- [ ] your task link here
validations:
required: false
Loading

0 comments on commit 45127b0

Please sign in to comment.