Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/michaelhenry/deploy-to-cocoapods-github-action
Github action for deploying to Cocoapods.org
https://github.com/michaelhenry/deploy-to-cocoapods-github-action
automation ci cocoapods github github-actions pod
Last synced: about 20 hours ago
JSON representation
Github action for deploying to Cocoapods.org
- Host: GitHub
- URL: https://github.com/michaelhenry/deploy-to-cocoapods-github-action
- Owner: michaelhenry
- Created: 2019-09-22T04:56:58.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2022-01-16T13:26:24.000Z (almost 3 years ago)
- Last Synced: 2024-10-26T12:35:42.155Z (13 days ago)
- Topics: automation, ci, cocoapods, github, github-actions, pod
- Language: JavaScript
- Size: 176 KB
- Stars: 37
- Watchers: 3
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-actions - Deploy iOS Pod Library to Cocoapods
- fucking-awesome-actions - Deploy iOS Pod Library to Cocoapods
- awesome-workflows - Deploy iOS Pod Library to Cocoapods
README
# Deploy to cocoapods
Using this GitHub Action, you can deploy automatically your pod library to [Cocoapods.org](https://cocoapods.org)
## Requirements
- Must have register to cocoapod trunk. Please refer to [Getting setup with Trunk](https://guides.cocoapods.org/making/getting-setup-with-trunk.html) on how to register.
- Get your `trunk token` by using `pod trunk me --verbose` from your command line.Example response:
```bash
opening connection to trunk.cocoapods.org:443...
opened
starting SSL for trunk.cocoapods.org:443...
SSL established, protocol: TLSv1.2, cipher: ECDHE-RSA-AES128-GCM-SHA256
<- "GET /api/v1/sessions HTTP/1.1\r\nContent-Type: application/json; charset=utf-8\r\nAccept: application/json; charset=utf-8\r\nUser-Agent: CocoaPods/1.7.4\r\nAuthorization: Token XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nHost: trunk.cocoapods.org\r\n\r\n"
-> "HTTP/1.1 200 OK\r\n"
-> "Date: Sun, 22 Sep 2019 05:11:46 GMT\r\n"
-> "Connection: keep-alive\r\n"
-> "Strict-Transport-Security: max-age=31536000\r\n"
-> "Content-Type: application/json\r\n"
-> "Content-Length: 1491\r\n"
-> "X-Content-Type-Options: nosniff\r\n"
-> "Server: thin 1.6.2 codename Doc Brown\r\n"
-> "Via: 1.1 vegur\r\n"
-> "\r\n"
```
Please get only the `XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX` as your `trunk token`.- register the your `trunk token` as [Secrets](https://help.github.com/en/articles/virtual-environments-for-github-actions#creating-and-using-secrets-encrypted-variables) and named it as `COCOAPODS_TRUNK_TOKEN`.
## Usage
The workflow, usually declared in `.github/workflows/deploy_to_cocoapods.yml`, looks like:
```yml
name: deploy_to_cocoapodson:
push:
tags:
- '*'jobs:
build:runs-on: macOS-latest
steps:
- uses: actions/checkout@v1
- name: Install Cocoapods
run: gem install cocoapods
# shortcut version
- uses: michaelhenry/[email protected]
env:
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
```OR
```yml
name: deploy_to_cocoapodson:
push:
tags:
- '*'jobs:
build:runs-on: macOS-latest
steps:
- uses: actions/checkout@v1
- name: Install Cocoapods
run: gem install cocoapods
- name: Deploy to Cocoapods
run: |
set -eo pipefail
pod lib lint --allow-warnings
pod trunk push --allow-warnings
env:
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
```## Example
An actual example can be found on this Repository: [Autobot](https://github.com/michaelhenry/AutoBot/blob/master/.github/workflows/deploy_to_cocoapods.yml).
## Recommendations
I also do recommend to automatically sync your library versioning with your `git tags or releases`. for example this `*.spec` file, I provided an environment variable for `LIB_VERSION` to use as the actual version, else it will goes to fallback version which is `1.0`
```ruby
Pod::Spec.new do |s|
s.name = 'AutoBot'
s.version = ENV['LIB_VERSION'] || '1.0' #fallback to major version
s.summary = 'UITestCases generator and executor for iOS Application.'
...
end
```on the github action, we have to update the step `Deploy to Cocoapods` from
```yml
...
- name: Deploy to Cocoapods
run: |
set -eo pipefail
pod lib lint --allow-warnings
pod trunk push --allow-warnings
env:
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
```to
```yml
...
- name: Deploy to Cocoapods
run: |
set -eo pipefail
export LIB_VERSION=$(git describe --tags `git rev-list --tags --max-count=1`)
pod lib lint --allow-warnings
pod trunk push --allow-warnings
env:
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
```and that's all.
## Cheers!
If you found some problems or encountered some troubles, please don't hessitate to let me know. I'm happy to help you!
## LICENSE
MIT