Skip to content

Build iOS project

Build iOS project #21

Workflow file for this run

name: Build iOS project
on:
workflow_dispatch:
jobs:
build:
name: Build project
runs-on: macos-14
steps:
- name: "Check out code"
uses: actions/checkout@v3
- name: "Setup dependencies: Node"
uses: actions/setup-node@v4
- name: "Install Node dependencies"
run: |
npm install -g yarn
npm install -g @angular/cli
npm install -g @ionic/cli
npm install -g @capacitor/core
npm install -g @capacitor/cli
yarn install
- name: "Build Ionic app"
run: ionic build -c production
- name: "Sync iOS project"
run: cap sync ios
- name: "Install SSH key"
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.FASTLANE_CERTIFICATES_KEY }}
- name: "Build project"
env:
BUILD_NUMBER: ${{github.run_number}}
VERSION_NUMBER: "1.0.0"
KEY_ID: ${{secrets.APPSTORE_KEY_ID}}
ISSUER_ID: ${{secrets.APPSTORE_KEY_ISSUER_ID}}
KEY_CONTENT: ${{secrets.APPSTORE_KEY_CONTENT}}
MATCH_PASSWORD: ${{secrets.MATCH_PASSWORD}}
run: |
cd ios/App
which bundle || gem install bundler
bundle config path vendor/bundle
bundle install
bundle exec fastlane build
- name: "Upload artifact"
uses: actions/upload-artifact@v4
with:
name: "macro-deck-client.ipa"
compression-level: 0
path: macro-deck-client.ipa
overwrite: true
if-no-files-found: error
upload_testflight:
name: Upload to Testflight
needs: build
runs-on: ubuntu-latest
steps:
- name: "Download source"
uses: actions/download-artifact@v4
with:
name: "build_${{github.run_number}}"
- name: "Download ipa"
uses: actions/download-artifact@v4
with:
name: "macro-deck-client.ipa"
path: ios/App
- name: "Upload"
run: |
cd ios/App
which bundle || gem install bundler
bundle config path vendor/bundle
bundle install
bundle exec fastlane release