diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 56d9b3e..bc0f693 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,19 +3,19 @@ name: Build and Deploy to App Distribution and Testflight on: workflow_dispatch: push: - branches: - - "main" + tags: + - "*" jobs: - extract-version: - name: Extract Version + extract-metadata: + name: Extract app metadata runs-on: ubuntu-latest outputs: - version: ${{ steps.extract-version.outputs.version }} - release_notes: ${{ steps.extract-version.outputs.release_notes }} + version: ${{ steps.extract-metadata.outputs.version }} + release_notes: ${{ steps.extract-metadata.outputs.release_notes }} steps: - - name: Extract version - id: extract-version + - name: Extract version and release notes + id: extract-metadata run: | VERSION="${{ github.ref_name }}" echo "Original version: $VERSION" @@ -23,21 +23,23 @@ jobs: echo "Processed version: $VERSION" echo "::set-output name=version::$VERSION" - RELEASE_NOTES=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/${{ github.repository }}/releases/tags/v0.0.15" | jq -r '.body') + RELEASE_NOTES=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/${{ github.repository }}/releases/tags/${{ github.ref_name }}" | jq -r '.body') echo "Release notes: $RELEASE_NOTES" + + RELEASE_NOTES="${RELEASE_NOTES//'%'/'%25'}" + RELEASE_NOTES="${RELEASE_NOTES//$'\n'/'%0A'}" + RELEASE_NOTES="${RELEASE_NOTES//$'\r'/'%0D'}" + echo "::set-output name=release_notes::$RELEASE_NOTES" ios-build: - needs: extract-version + needs: extract-metadata environment: development name: iOS development build runs-on: macos-latest steps: - - name: Add release notes - run: | - echo -n "${{ needs.extract-version.outputs.release_notes }}" > ./release_notes.txt - name: Cancel previous runs uses: styfle/cancel-workflow-action@0.12.0 - - name: Checkout repo from dev branch + - name: Checkout repo from branch uses: actions/checkout@v3 - name: create-json id: add-firebase-credentials @@ -46,6 +48,9 @@ jobs: name: "wildlife-watcher-service-account.json" json: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_JSON }} dir: "./fastlane" + - name: Add release notes + run: | + echo -n "${{ needs.extract-metadata.outputs.release_notes }}" > ./release_notes.txt - name: Copy App Store Provisioning certificate run: echo -n "${{ secrets.IOS_CERT_PROVISION }}" | base64 --decode > ./fastlane/profile.mobileprovision - name: Copy Testers Provisioning certificate @@ -67,23 +72,20 @@ jobs: env: IOS_CERT_PASSWORD: ${{ secrets.IOS_CERT_PASSWORD }} IOS_KEYCHAIN_PASSWORD: ${{ secrets.IOS_KEYCHAIN_PASSWORD }} - APP_VERSION: ${{ needs.extract-version.outputs.version }} + APP_VERSION: ${{ needs.extract-metadata.outputs.version }} APP_ID: ${{ vars.APP_ID_IOS }} TESTERS: ${{ vars.TESTERS }} android-build: - needs: extract-version + needs: extract-metadata environment: development name: Android development build runs-on: ubuntu-latest container: image: reactnativecommunity/react-native-android steps: - - name: Add release notes - run: | - echo -n "${{ needs.extract-version.outputs.release_notes }}" > ./release_notes.txt - name: Cancel previous runs uses: styfle/cancel-workflow-action@0.12.0 - - name: Checkout repo from dev branch + - name: Checkout repo from branch uses: actions/checkout@v3 - name: create-json id: add-firebase-credentials @@ -92,6 +94,8 @@ jobs: name: "wildlife-watcher-service-account.json" json: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_JSON }} dir: "./fastlane" + - name: Add release notes + run: echo -n "${{ needs.extract-metadata.outputs.release_notes }}" > ./release_notes.txt - name: create-json id: add-android-credentials uses: jsdaniell/create-json@v1.2.2 @@ -115,7 +119,7 @@ jobs: run: | bundle exec fastlane android build_release env: - APP_VERSION: ${{ needs.extract-version.outputs.version }} + APP_VERSION: ${{ needs.extract-metadata.outputs.version }} APP_CODE_VERSION: ${{ github.run_number }} APP_ID: ${{ vars.APP_ID_ANDROID }} TESTERS: ${{ vars.TESTERS }} diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 5913845..a2f2cc7 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -18,21 +18,6 @@ platform :ios do desc "Build a release version of the app" lane :build_release do - - # Check if the release_notes.txt file exists - if File.exist?("./release_notes.txt") - # Read the contents of the file - release_notes_content = File.read("./release_notes.txt") - - # Print the contents of the file - puts "Release Notes:" - puts release_notes_content - else - puts "Release notes file not found" - puts "Current directory: #{Dir.pwd}" - puts "Files in current directory: #{Dir.entries(".")}" - end - create_keychain( name: "com.wildlife.wildlifewatcher", password: ENV["IOS_KEYCHAIN_PASSWORD"], @@ -81,17 +66,17 @@ platform :ios do release_notes_file: './release_notes.txt' ) - build_ios_app( - silent: true, - scheme: 'WildlifeWatcher', - configuration: "Release", - workspace: './ios/WildlifeWatcher.xcworkspace', - output_directory: './ios/ipa', - output_name: 'WildlifeWatcher.ipa', - buildlog_path: './ios/logs', - suppress_xcode_output: true, - export_options: "./ios/WildlifeWatcher/exportOptions.plist" - ) + # build_ios_app( + # silent: true, + # scheme: 'WildlifeWatcher', + # configuration: "Release", + # workspace: './ios/WildlifeWatcher.xcworkspace', + # output_directory: './ios/ipa', + # output_name: 'WildlifeWatcher.ipa', + # buildlog_path: './ios/logs', + # suppress_xcode_output: true, + # export_options: "./ios/WildlifeWatcher/exportOptions.plist" + # ) # Should upload to testflight at this point end