diff --git a/.github/workflows/ios-sdk-ci.yml b/.github/workflows/ios-sdk-ci.yml index c7a8eb4..e919b6f 100644 --- a/.github/workflows/ios-sdk-ci.yml +++ b/.github/workflows/ios-sdk-ci.yml @@ -1,16 +1,15 @@ name: "iOS SDK CI" on: - pull_request: - # push: # TODO: To be validated - # branches-ignore: '*' - # tags: - # - '^([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?$' + pull_request: + push: + tags: + - "v.*" jobs: setup: name: "Setup" - runs-on: macos-14 + runs-on: macos-13 steps: - name: Checkout Code uses: actions/checkout@v4 @@ -19,10 +18,10 @@ jobs: with: ruby-version: 3.0.7 bundler-cache: true # runs 'bundle install' and caches installed gems automatically - + sdk-tests: name: "SDK Tests" - runs-on: macos-14 + runs-on: macos-13 needs: [setup] steps: - name: Checkout Code @@ -39,26 +38,34 @@ jobs: build-demo-swift: name: "Build Demo Swift" - runs-on: macos-14 - + runs-on: macos-13 needs: [setup, sdk-tests] steps: - name: Checkout Code uses: actions/checkout@v4 - name: Bundle install run: bundle install + - name: Select Xcode version + run: sudo xcode-select -s '/Applications/Xcode_12.1.app/Contents/Developer' - name: Build Demo Swift id: build-demo-swift run: bundle exec fastlane demo_swift - # - name: Store Artifacts - # uses: actions/upload-artifact@v4 - # with: - # name: demo-swift - # path: + - name: find output + run: ls -R + - name: Store Artifacts + uses: actions/upload-artifact@v4 + with: + name: demo-swift + path: ./demo-ios-swift/Pods + - name: Store build log + uses: actions/upload-artifact@v4 + with: + name: build-log + path: /Users/runner/Library/Logs/gym build-demo-objc: name: "Build Demo Objective-C" - runs-on: macos-14 + runs-on: macos-13 env: FL_OUTPUT_DIR: output needs: [setup, sdk-tests] @@ -67,10 +74,17 @@ jobs: uses: actions/checkout@v4 - name: Bundle install run: bundle install + - name: Select Xcode version + run: sudo xcode-select -s '/Applications/Xcode_12.1.app' - name: Build Demo Objective-C run: bundle exec fastlane demo_objc - # - name: Store Artifacts - # uses: actions/upload-artifact@v4 - # with: - # name: demo-objc - # path: + - name: Store Artifacts + uses: actions/upload-artifact@v4 + with: + name: demo-objc + path: ./demo-ios-objc/Pods + - name: Store build log + uses: actions/upload-artifact@v4 + with: + name: build-log + path: Users/runner/Library/Logs/gym diff --git a/README.md b/README.md index c1832e3..4c83d4c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Optable iOS SDK [![CircleCI](https://circleci.com/gh/Optable/optable-ios-sdk.svg?style=shield&circle-token=08842d5bffbe92f278b666f51f306076201e2839)](https://app.circleci.com/pipelines/github/Optable/optable-ios-sdk) +# Optable iOS SDK [![Github Actions](https://github.com/Optable/optable-ios-sdk/actions)](https://github.com/Optable/optable-ios-sdk/actions) Swift SDK for integrating with an [Optable Data Connectivity Node (DCN)](https://docs.optable.co) from an iOS application. @@ -6,25 +6,33 @@ You can use the SDK functionality from either a Swift or Objective-C iOS applica ## Contents -- [Installing](#installing) -- [Using (Swift)](#using-swift) - - [Identify API](#identify-api) - - [Profile API](#profile-api) - - [Targeting API](#targeting-api) - - [Witness API](#witness-api) - - [Integrating GAM360](#integrating-gam360) -- [Using (Objective-C)](#using-objective-c) - - [Identify API](#identify-api-1) - - [Profile API](#profile-api-1) - - [Targeting API](#targeting-api-1) - - [Witness API](#witness-api-1) - - [Integrating GAM360](#integrating-gam360-1) -- [Identifying visitors arriving from Email newsletters](#identifying-visitors-arriving-from-email-newsletters) - - [Insert oeid into your Email newsletter template](#insert-oeid-into-your-email-newsletter-template) - - [Capture clicks on universal links in your application](#capture-clicks-on-universal-links-in-your-application) - - [Call tryIdentifyFromURL SDK API](#call-tryidentifyfromurl-sdk-api) -- [Demo Applications](#demo-applications) - - [Building](#building) +- [Optable iOS SDK ](#optable-ios-sdk-) + - [Contents](#contents) + - [Installing](#installing) + - [Swift Package Manager](#swift-package-manager) + - [CocoaPods](#cocoapods) + - [Using (Swift)](#using-swift) + - [Identify API](#identify-api) + - [Profile API](#profile-api) + - [Targeting API](#targeting-api) + - [Caching Targeting Data](#caching-targeting-data) + - [Witness API](#witness-api) + - [Integrating GAM360](#integrating-gam360) + - [Using (Objective-C)](#using-objective-c) + - [Identify API](#identify-api-1) + - [Profile API](#profile-api-1) + - [Targeting API](#targeting-api-1) + - [Caching Targeting Data](#caching-targeting-data-1) + - [Witness API](#witness-api-1) + - [Integrating GAM360](#integrating-gam360-1) + - [Identifying visitors arriving from Email newsletters](#identifying-visitors-arriving-from-email-newsletters) + - [Insert oeid into your Email newsletter template](#insert-oeid-into-your-email-newsletter-template) + - [Capture clicks on universal links in your application](#capture-clicks-on-universal-links-in-your-application) + - [Call tryIdentifyFromURL SDK API](#call-tryidentifyfromurl-sdk-api) + - [Swift](#swift) + - [Objective-C](#objective-c) + - [Demo Applications](#demo-applications) + - [Building](#building) ## Installing diff --git a/releasing.md b/releasing.md index bf2543c..61bd931 100644 --- a/releasing.md +++ b/releasing.md @@ -64,17 +64,17 @@ You should see a `demo-ios-{swift,objc}.xcworkspace` file locally in the demo ap ## Merge release preparation PR -Ensure all release preparation changes have been committed and pushed to the release preparation branch and that the draft PR passes all required checks, including the automated [CircleCI](https://app.circleci.com/pipelines/github/Optable/optable-ios-sdk) builds. +Ensure all release preparation changes have been committed and pushed to the release preparation branch and that the draft PR passes all required checks, including the automated [Github Actions](https://github.com/Optable/optable-ios-sdk/actions) builds. Once the PR is ready, squash and merge it into `master` and delete the release preparation branch. ## Create the release -Ensure that the latest merged changes successfully pass all automated [CircleCI](https://app.circleci.com/pipelines/github/Optable/optable-ios-sdk) builds in `master`. +Ensure that the latest merged changes successfully pass all automated [Github Actions](https://github.com/Optable/optable-ios-sdk/actions) builds in `master`. Draft a new release in the [GitHub Releases page](https://github.com/Optable/optable-ios-sdk/releases), specifying a new tag for creation with the tag name equal to the version of the release (example: 0.10.0). The release title should also be set to the release version number, and the description should include a list of important changes since the previous release. Publish the release. -Ensure that the [CircleCI](https://app.circleci.com/pipelines/github/Optable/optable-ios-sdk) release-builds which will run automatically when the release tag is published complete successfully. +Ensure that the [Github Actions](https://github.com/Optable/optable-ios-sdk/actions) release-builds which will run automatically when the release tag is published complete successfully. ## Publish latest spec to CocoaPods trunk