Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .github/actions/generate-configs/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: 'Generate Config Files'
description: 'Generate TelemetryDeck and Glitchtip configuration files from secrets'
inputs:
telemetrydeck-app-id:
description: 'TelemetryDeck App ID'
required: true
glitchtip-dsn:
description: 'Glitchtip DSN'
required: true

runs:
using: 'composite'
steps:
- name: 🤫 Generate TelemetryDeck Config
shell: bash
run: |
cat > telemetrydeck.json << EOF
{
"appID": "${{ inputs.telemetrydeck-app-id }}",
"clientUser": "anonymous",
"app": "Jellify"
}
EOF

- name: 🤫 Generate Glitchtip Config
shell: bash
run: |
cat > glitchtip.json << EOF
{
"dsn": "${{ inputs.glitchtip-dsn }}"
}
EOF

- name: ✅ Validate Config Files
shell: bash
run: |
node -e "JSON.parse(require('fs').readFileSync('telemetrydeck.json'))"
node -e "JSON.parse(require('fs').readFileSync('glitchtip.json'))"
47 changes: 47 additions & 0 deletions .github/actions/setup-android/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: 'Setup Android Build Environment'
description: 'Setup Android build environment with Gradle caching'
inputs:
node-version:
description: 'Node.js version'
required: false
default: '20'
ruby-version:
description: 'Ruby version'
required: false
default: '3.0'

runs:
using: 'composite'
steps:
- name: 🛒 Setup Node and Yarn
uses: ./.github/actions/setup-node-yarn
with:
node-version: ${{ inputs.node-version }}
cache-key-suffix: 'android'

- name: 💎 Setup Ruby
uses: ./.github/actions/setup-ruby
with:
ruby-version: ${{ inputs.ruby-version }}
working-directory: './android'

- name: ☕ Setup Java
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'

- name: 💾 Cache Gradle
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
android/.gradle
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-

- name: 🤖 Install Android Dependencies
shell: bash
run: yarn init-android
41 changes: 41 additions & 0 deletions .github/actions/setup-ios/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: 'Setup iOS Build Environment'
description: 'Setup iOS build environment with CocoaPods caching'
inputs:
node-version:
description: 'Node.js version'
required: false
default: '20'
ruby-version:
description: 'Ruby version'
required: false
default: '3.0'

runs:
using: 'composite'
steps:
- name: 🛒 Setup Node and Yarn
uses: ./.github/actions/setup-node-yarn
with:
node-version: ${{ inputs.node-version }}
cache-key-suffix: 'ios'

- name: 💎 Setup Ruby
uses: ./.github/actions/setup-ruby
with:
ruby-version: ${{ inputs.ruby-version }}
working-directory: './ios'

- name: 💾 Cache CocoaPods
uses: actions/cache@v4
with:
path: |
ios/Pods
~/Library/Caches/CocoaPods
~/.cocoapods
key: ${{ runner.os }}-pods-${{ hashFiles('ios/Podfile.lock') }}
restore-keys: |
${{ runner.os }}-pods-

- name: 📱 Install iOS Dependencies
shell: bash
run: yarn init-ios:new-arch
42 changes: 42 additions & 0 deletions .github/actions/setup-node-yarn/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: 'Setup Node.js and Yarn with Caching'
description: 'Setup Node.js, install dependencies with yarn, and cache node_modules'
inputs:
node-version:
description: 'Node.js version to use'
required: false
default: '20'
cache-key-suffix:
description: 'Additional suffix for cache key'
required: false
default: ''

runs:
using: 'composite'
steps:
- name: 🖥 Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}

- name: 📂 Get yarn cache directory
shell: bash
id: yarn-cache-dir
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT

- name: 💾 Cache yarn dependencies
uses: actions/cache@v4
id: yarn-cache
with:
path: |
${{ steps.yarn-cache-dir.outputs.dir }}
node_modules
*/*/node_modules
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}-${{ inputs.cache-key-suffix }}
restore-keys: |
${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}-
${{ runner.os }}-yarn-

- name: 🧵 Install dependencies
shell: bash
if: steps.yarn-cache.outputs.cache-hit != 'true'
run: yarn install --network-concurrency 1 --frozen-lockfile
21 changes: 21 additions & 0 deletions .github/actions/setup-ruby/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: 'Setup Ruby with Bundler Caching'
description: 'Setup Ruby with specified version and cache bundler dependencies'
inputs:
ruby-version:
description: 'Ruby version to use'
required: false
default: '3.0'
working-directory:
description: 'Working directory for bundle operations'
required: false
default: '.'

runs:
using: 'composite'
steps:
- name: 💎 Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ inputs.ruby-version }}
bundler-cache: true
working-directory: ${{ inputs.working-directory }}
Loading
Loading