Skip to content

Commit

Permalink
Merge pull request #5 from JT501/develop
Browse files Browse the repository at this point in the history
2.0.0
  • Loading branch information
JT501 authored Apr 17, 2024
2 parents 68e9314 + 5aeca49 commit c3cd119
Show file tree
Hide file tree
Showing 168 changed files with 7,461 additions and 3,963 deletions.
53 changes: 53 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Deploy to Cocoapods

on:
push:
tags:
- '*'
paths-ignore:
- 'Sources/SwiftNotify/SwiftNotify.docc/**'
- '**.md'

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
# Check if the tag is pushed to master
check-tag-branch:
runs-on: ubuntu-latest
steps:
- name: get tag commit hash
id: tag-commit-hash
run: |
hash=${{ GITHUB.SHA }}
echo "::set-output name=tag-hash::${hash}"
echo $hash
- name: checkout master
uses: actions/checkout@v4
with:
ref: master
- name: get latest master commit hash
id: master-commit-hash
run: |
hash=$(git log -n1 --format=format:"%H")
echo "::set-output name=master-hash::${hash}"
echo $hash
- name: exit if tag commit hash don't match master commit hash
if: steps.tag-commit-hash.outputs.tag-hash != steps.master-commit-hash.outputs.master-hash
run: exit 1

deploy:
needs: [check-tag-branch]
runs-on: macos-14
steps:
- name: Install Cocoapods
run: gem install cocoapods

- name: Deploy to Cocoapods
run: |
set -eo pipefail
export LIB_VERSION=${{ github.ref_name }}
pod lib lint --allow-warnings
pod trunk push --allow-warnings
env:
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
111 changes: 111 additions & 0 deletions .github/workflows/static.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# Simple workflow for deploying static content to GitHub Pages
name: Deploy static content to Pages

on:
# Runs on pushes targeting the default branch
push:
branches: ["master"]
path:
- 'Sources/SwiftNotify/SwiftNotify.docc/**'

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
# Single deploy job since we're just deploying
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: macos-14
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Add Mask
run: |
echo "::add-mask::${{ secrets.MASK_NAME }}"
#Ensure the xcode version is available
- name: List Xcode installations
run: sudo ls -1 /Applications | grep "Xcode"

- name: Setup Xcode version
uses: maxim-lobanov/[email protected]
with:
xcode-version: latest-stable

- name: Install the Apple certificate and provisioning profile
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }}
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
run: |
# create variables
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
# import certificate and provisioning profile from secrets
echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH
echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode -o $PP_PATH
# create temporary keychain
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
# import certificate to keychain
security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
security set-key-partition-list -S apple-tool:,apple: -k "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
security list-keychain -d user -s $KEYCHAIN_PATH
# apply provisioning profile
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles
- name: Setup Pages
uses: actions/configure-pages@v5

- name: Remove .xcodeproj and .xcworkspace
run: rm -rf SwiftNotify.xcodeproj && rm -rf SwiftNotify.xcworkspace

- name: Build DocC Archive
run: |
xcodebuild docbuild -scheme SwiftNotify \
-derivedDataPath /tmp/docbuild \
-destination 'generic/platform=iOS';
- name: Export static files from DocC Archive
run: |
$(xcrun --find docc) process-archive \
transform-for-static-hosting /tmp/docbuild/Build/Products/Debug-iphoneos/SwiftNotify.doccarchive \
--hosting-base-path SwiftNotify \
--output-path docs;
- name: Route documentation page
run: |
echo "<script>window.location.href += \"/documentation/swiftnotify\"</script>" > docs/index.html
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# Upload entire repository
path: 'docs'

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
67 changes: 49 additions & 18 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,15 +1,27 @@
## OS X Finder
.DS_Store

# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## Build generated
# Mac OS X
.DS_Store

# Idea IDE
.idea/

# VS Code IDE
.vscode/

## User settings
xcuserdata/

## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
*.xcscmblueprint
*.xccheckout

## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
build/
DerivedData/

## Various settings
*.moved-aside
*.pbxuser
!default.pbxuser
*.mode1v3
Expand All @@ -18,15 +30,11 @@ DerivedData/
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/

## Other
*.moved-aside
*.xccheckout
*.xcscmblueprint

## Obj-C/Swift specific
*.hmap

## App packaging
*.ipa
*.dSYM.zip
*.dSYM
Expand All @@ -38,8 +46,15 @@ playground.xcworkspace
# Swift Package Manager
#
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
# Packages/
# Package.pins
Packages/
Package.pins
Package.resolved
#*.xcodeproj
#
# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
# hence it is not needed unless you have added a package configuration file to your project
#.swiftpm

.build/

# CocoaPods
Expand All @@ -49,22 +64,38 @@ playground.xcworkspace
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/
#
# Add this line if you want to avoid checking in source code from the Xcode workspace
# *.xcworkspace

# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage/Build
Carthage/Build/

# Accio dependency management
Dependencies/
.accio/

# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# It is recommended to not store the screenshots in the git repo.
# Instead, use fastlane to re-generate the screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/#source-control

fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/screenshots/**/*.png
fastlane/test_output

# Code Injection
#
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode

iOSInjectionProject/
/*.SwiftNotify.iml
docs/
6 changes: 0 additions & 6 deletions .gitmodules

This file was deleted.

7 changes: 7 additions & 0 deletions .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit c3cd119

Please sign in to comment.