Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automation #299

Merged
merged 9 commits into from
Jul 17, 2024
Merged
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
1 change: 1 addition & 0 deletions .github/actions/ci/action.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
name: ci
description: Executes Dart specific CI steps.

inputs:
type:
description: The type of CI to run.
Expand Down
33 changes: 25 additions & 8 deletions .github/actions/dependencies/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,35 @@ description: Installs dependencies
runs:
using: composite
steps:
# General Tests
- name: Install packages
# Install Flutter SDK
- name: Install Flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
architecture: x64

# Get package dependencies and generate files
- name: Get package dependencies and generate files
shell: bash
run: flutter pub get
run: |
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs

# - name: Generate code
# shell: bash
# run: flutter pub run build_runner build --delete-conflicting-outputs
# Get example app dependencies and generate files
- name: Get example app dependencies and generate files
shell: bash
working-directory: example/wallet
run: |
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs

- name: Install packages for example
# Get example app dependencies and generate files
- name: Get example app dependencies and generate files
shell: bash
run: cd example/dapp && flutter pub get && cd ../..
working-directory: example/dapp
run: |
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs

- name: Verify formatting and analyze project source
shell: bash
Expand Down
19 changes: 9 additions & 10 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,26 +14,22 @@ jobs:
steps:
# Checkout the repo
- uses: actions/checkout@v3

# Install Flutter
- name: Install and set Flutter version
uses: subosito/flutter-action@v2
with:
flutter-version: '3.19.5'

# Install Flutter and Dependencies
- uses: ./.github/actions/dependencies

# Setup Dart SDK
- uses: dart-lang/setup-dart@v1

# Setup Dependencies
- uses: ./.github/actions/dependencies

# Publish
- name: Check Publish Warnings
shell: bash
run: flutter pub publish --dry-run

- name: Publish Package
shell: bash
run: flutter pub publish -f

# Notify
- name: Notify Channel
uses: slackapi/[email protected]
Expand All @@ -44,4 +40,7 @@ jobs:
payload: |-
{
"text":"🚀 WalletConnectFlutterV2 *${{ github.ref_name }}* was just published at https://pub.dev/packages/walletconnect_flutter_v2"
}
}

# Launch locally
# act -j publish --container-architecture linux/amd64 -P macos-latest-xlarge=-self-hosted --secret-file .github/workflows/.env.secret -W .github/workflows/publish.yml
76 changes: 76 additions & 0 deletions .github/workflows/release_dapp_android.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Android Web3Dapp deploy

on:
workflow_dispatch:
pull_request:
types:
- closed

jobs:
build:
if: github.event.pull_request.merged == true
runs-on: macos-latest-xlarge

steps:
# Checkout the repo
- name: Checkout repository
uses: actions/checkout@v4

# Create temp firebase key
# - name: Create temp firebase key
# env:
# FIREBASE_KEY_BASE64: ${{ secrets.FIREBASE_KEY_BASE64 }}
# run: |
# # create variables
# FIREBASE_KEY_PATH=$RUNNER_TEMP/flutter-c7c2c-6df892fe6ddb.json

# # import certificate and provisioning profile from secrets
# echo -n "$FIREBASE_KEY_BASE64" | base64 --decode -o $FIREBASE_KEY_PATH

# Install Java 17
- name: Install Java 17
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '17'
architecture: x86_64
cache: 'gradle'

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

# # Install Fastlane
# - name: Install Fastlane
# run: gem install fastlane

# Install Flutter and Dependencies
- uses: ./.github/actions/dependencies

# Fastlane
- name: Fastlane
working-directory: example/dapp/android
env:
PROJECT_ID: ${{ secrets.DAPP_PROJECT_ID }}
SLACK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
FIREBASE_DAPP_ID: ${{ secrets.FIREBASE_DAPP_ID }}
run: |
PUBSPEC_FILE=../../../pubspec.yaml
FILE_VALUE=$(echo | grep "^version: " $PUBSPEC_FILE)
PARTS=(${FILE_VALUE//:/ })
FULL_VERSION=${PARTS[1]}
VERSION_NUMBER=(${FULL_VERSION//-/ })

fastlane add_plugin firebase_app_distribution
fastlane release_firebase project_id:$PROJECT_ID app_version:$VERSION_NUMBER

# Launch locally
# act -j build --container-architecture linux/amd64 -P macos-latest-xlarge=-self-hosted --secret-file .github/workflows/.env.secret -W .github/workflows/release_dapp_android.yml
87 changes: 87 additions & 0 deletions .github/workflows/release_dapp_ios.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: iOS Web3Dapp deploy

on:
workflow_dispatch:
pull_request:
types:
- closed

jobs:
build:
if: github.event.pull_request.merged == true
runs-on: macos-latest-xlarge

steps:
# Checkout the repo
- name: Checkout repository
uses: actions/checkout@v4
# - uses: actions/checkout@v3
# - uses: ruby/setup-ruby@v1
# with:
# bundler-cache: true

# Cache
- name: Cache
uses: actions/cache@v3
with:
path: |
.build
SourcePackagesCache
DerivedDataCache
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-

# # Install Ruby
# - name: Install Ruby
# uses: ruby/setup-ruby@v1
# with:
# ruby-version: 3.0.2
# bundler-cache: true

# # Install Fastlane
# - name: Install Fastlane
# run: gem install fastlane

# Install Flutter and Dependencies
- uses: ./.github/actions/dependencies

# Build App
- name: Build App
working-directory: example/dapp
env:
PROJECT_ID: ${{ secrets.DAPP_PROJECT_ID }}
run: |
PUBSPEC_FILE=../../pubspec.yaml
FILE_VALUE=$(echo | grep "^version: " $PUBSPEC_FILE)
PARTS=(${FILE_VALUE//:/ })
FULL_VERSION=${PARTS[1]}
VERSION_NUMBER=(${FULL_VERSION//-/ })

flutter build ipa --build-name $VERSION_NUMBER --dart-define="PROJECT_ID=$PROJECT_ID" --release

# Fastlane
- name: Fastlane
working-directory: example/dapp/ios
env:
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_DAPP_ID: ${{ secrets.APPLE_DAPP_ID }}
PROJECT_ID: ${{ secrets.DAPP_PROJECT_ID }}
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
APP_STORE_KEY_ID: ${{ secrets.APP_STORE_KEY_ID }}
APPLE_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }}
GH_BASIC_AUTH: ${{ secrets.GH_BASIC_AUTH }}
APP_STORE_CONNECT_KEY: ${{ secrets.APP_STORE_CONNECT_KEY }}
MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }}
SLACK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
PUBSPEC_FILE=../../../pubspec.yaml
FILE_VALUE=$(echo | grep "^version: " $PUBSPEC_FILE)
PARTS=(${FILE_VALUE//:/ })
FULL_VERSION=${PARTS[1]}
VERSION_NUMBER=(${FULL_VERSION//-/ })

fastlane release_testflight username:$APPLE_ID token:$GH_BASIC_AUTH project_id:$PROJECT_ID app_id:$APPLE_DAPP_ID app_store_key_id:$APP_STORE_KEY_ID apple_issuer_id:$APPLE_ISSUER_ID app_store_connect_key:"$APP_STORE_CONNECT_KEY" match_git_url:$MATCH_GIT_URL app_version:$VERSION_NUMBER

# Launch locally
# act -j build --container-architecture linux/amd64 -P macos-latest-xlarge=-self-hosted --secret-file .github/workflows/.env.secret -W .github/workflows/release_dapp_ios.yml
76 changes: 76 additions & 0 deletions .github/workflows/release_wallet_android.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Android Web3Wallet deploy

on:
workflow_dispatch:
pull_request:
types:
- closed

jobs:
build:
if: github.event.pull_request.merged == true
runs-on: macos-latest-xlarge

steps:
# Checkout the repo
- name: Checkout repository
uses: actions/checkout@v4

# Create temp firebase key
# - name: Create temp firebase key
# env:
# FIREBASE_KEY_BASE64: ${{ secrets.FIREBASE_KEY_BASE64 }}
# run: |
# # create variables
# FIREBASE_KEY_PATH=$RUNNER_TEMP/flutter-c7c2c-6df892fe6ddb.json

# # import certificate and provisioning profile from secrets
# echo -n "$FIREBASE_KEY_BASE64" | base64 --decode -o $FIREBASE_KEY_PATH

# Install Java 17
- name: Install Java 17
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '17'
architecture: x86_64
cache: 'gradle'

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

# # Install Fastlane
# - name: Install Fastlane
# run: gem install fastlane

# Install Flutter and Dependencies
- uses: ./.github/actions/dependencies

# Fastlane
- name: Fastlane
working-directory: example/wallet/android
env:
PROJECT_ID: ${{ secrets.WALLET_PROJECT_ID }}
SLACK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
FIREBASE_WALLET_ID: ${{ secrets.FIREBASE_WALLET_ID }}
run: |
PUBSPEC_FILE=../../../pubspec.yaml
FILE_VALUE=$(echo | grep "^version: " $PUBSPEC_FILE)
PARTS=(${FILE_VALUE//:/ })
FULL_VERSION=${PARTS[1]}
VERSION_NUMBER=(${FULL_VERSION//-/ })

fastlane add_plugin firebase_app_distribution
fastlane release_firebase project_id:$PROJECT_ID app_version:$VERSION_NUMBER

# Launch locally
# act -j build --container-architecture linux/amd64 -P macos-latest-xlarge=-self-hosted --secret-file .github/workflows/.env.secret -W .github/workflows/release_wallet_android.yml
Loading
Loading