Tempo iOS AppLovin Mediation Adapter is a custom API that allows the Tempo SDK to talk to the AppLovin SDK.
- Create a new release in GitHub with an updated version number.
- Update the version number in "TempoSDK.podspec" file to match the above GitHub release.
- Run
pod trunk push --allow-warnings --verbose
Add the following line to your Podfile:
pod 'tempo-applovin-mediation'
All changes to the repository must be done on a branch separate to main
. Once work is finished on a branch it can then be merged into main
by creating a pull request.
Branches are recommended to use the following format:
intent/title
intent-title
e.g.
feature/new-ad-type
refactor-ad-module
fix/blank-ad-issue
The start of the commit message, in this case the word feature indicates the intention of the commit. A full list of commit intentions are listed below.
The last part of the commit message is a brief description of the changes.
Intentions
- feature: Adding new functionality to the codebase
- enhancement: Enhancing an existing feature or making it more performant
- refactor: Removing/Restructuring code to better suit architectural constraints, developer productivity or performance
- fix: Fixing a bug
- chore: Any mind-numbing, painful or otherwise distasteful changes to the codebase
- test: Updating or adding tests
- build: Updating the build process
- docs: Updating or adding documentation
- action: Any GitHub Actions related work (pipeline yaml files, pipeline testing, etc)
Pull requests let you tell others about changes you've pushed to a branch in a repository on GitHub. Once a pull request is opened, you can discuss and review the potential changes with collaborators and add follow-up commits before your changes are merged into the base branch.
Before merging our branch into development or master, we must create a pull request in the repository.
This repository utilises GitHub Actions workflows for both CD (Continuous Delivery/Deployment) & version management.
The workflow files can be found in .github/workflows
.
The release-drafter.yml workflow is the mechanism by which a release number tag is generated for pod releases of the tempo-ios-sdk repo. This tag is then used when pushing pods to the CocoaPods Trunk.
This is all achieved by the release-drafter workflow running in the following scenarios:
---
title: release-drafter Workflow - Pull Request
---
flowchart
subgraph j1 [Job: 'update-release-draft']
direction LR
A["`Add Label to PR
Based on Branch Name`"] --> B["`Set Version
(Skip on PR)`"]
end
subgraph j2 ["`Job: 'update-podspec'
(Skip on PR)`"]
direction LR
end
j1 -...-> j2
Whenever a pull request is created, the release drafter workflow runs it's autolabeler functionality which adds labels to the pull request based on the branch name.
Version numbers and their associated branch name patterns and labels are as follows:
Version Number Increment | Branch Name | Generated Label |
---|---|---|
Major (1.X.X) | N/A | breaking |
Minor (X.1.X) | "feature/..." "feature-..." "feat/..." "feat-..." "enhancement/..." "enhancement-..." "enhance/..." "enhance-..." "refactor/..." "refactor-..." |
feature enhancement refactor |
Patch (X.X.1) | "fix/..." "fix-..." "bugfix/..." "bugfix-..." "chore/..." "chore-..." |
fix chore |
---
title: release-drafter Workflow - Push to Master
---
flowchart
subgraph j1 [Job: 'update-release-draft']
direction LR
A["`Create or Update
Release`"] --> B["`Set Version`"]
end
subgraph j2 [Job: 'update-podspec']
direction LR
C["`Checkout
Repository Code`"] --> D
D["`Update version
in **.podspec** &
**ALTempoMediationAdapter.swift**`"] --> E
E["`Check for
Changes in repo`"] --> F
F["`If Changes detected
Stage File(s) & Commit`"] --> G
G["`If Changes detected
Push Changes to **main**`"]
end
j1 -. "`export '_version_' env var`" ..-> j2
When a pull request is closed and pushed to master, release drafter will either create a new release or append the currently opened draft release with the following:
- A bump to the required version
- Details around the closed pull request under specific headings
- Contributor details
---
title: cocoapods-release Workflow - Publish Release
---
flowchart
subgraph j1 [Job]
direction LR
A["`Checkout
Repository Codee`"] --> B["`Push to CocoaPods`"]
end
Once you are satisfied with a release, publish it to then trigger the push to CocoaPods. Go to Releases -> Newest draft version -> Edit -> Publish
Once a Release has been published, the cocoapods-release
workflow will deploy the new release to CocoaPods using:
pod trunk push <podspec-path> --allow-warnings --verbose