Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
p0dyakov committed Jan 5, 2023
2 parents ff38c4d + 31ef1e0 commit c733aa9
Showing 1 changed file with 101 additions and 0 deletions.
101 changes: 101 additions & 0 deletions .github/workflows/dart.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: Flutter CI
on:
push:
jobs:
analyze:
name: Run analyzer and formatter
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
with:
flutter-version: '3.0.5'
cache: true
- run: flutter pub get
- run: flutter analyze
- run: flutter format --set-exit-if-changed .
test:
name: Run tests
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
with:
flutter-version: '3.0.5'
cache: true
- run: flutter pub get
- run: flutter test
id: test
- if: ${{ failure() && steps.test.conclusion == 'failure' }}
name: 'Upload test failures'
uses: actions/upload-artifact@v3
with:
name: test-failures
path: test/failures
retention-days: 5
build:
needs: [analyze, test]
name: Build ${{ matrix.target }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
timeout-minutes: 10
strategy:
matrix:
target: ['iOS', 'android']
include:
- target: android
os: ubuntu-latest
build-args: 'apk --split-per-abi'
java-version: '11'

- target: iOS
os: macos-latest
build-args: 'ipa'
import-certs: true

steps:
- uses: actions/checkout@v3
- if: ${{ matrix.java-version }}
uses: actions/setup-java@v2
with:
distribution: 'zulu'
java-version: ${{ matrix.java-version }}

# see https://docs.github.com/en/actions/deployment/deploying-xcode-applications/installing-an-apple-certificate-on-macos-runners-for-xcode-development
- if: ${{ matrix.import-certs }}
name: Install the Apple certificate and provisioning profile
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.CERTIFICATES_P12 }}
P12_PASSWORD: ${{ secrets.CERTIFICATES_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 --output $CERTIFICATE_PATH
echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode --output $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 list-keychain -d user -s $KEYCHAIN_PATH
# apply provisioning profile
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles
- uses: subosito/flutter-action@v2
with:
flutter-version: '3.0.5'
cache: true
- uses: actions/cache@v1
with:
path: ios/Pods
key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
restore-keys: |
${{ runner.os }}-pods-
- run: flutter build ${{ matrix.build-args }}

0 comments on commit c733aa9

Please sign in to comment.