diff --git a/.github/workflows/appstore-testflight.yml b/.github/workflows/appstore-testflight.yml index 4b2d76c7d..31665167c 100644 --- a/.github/workflows/appstore-testflight.yml +++ b/.github/workflows/appstore-testflight.yml @@ -1,21 +1,10 @@ ---- -# Nightly compile for e2e testing name: Deploy to Apple App Store on Demo Track, Manual -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the main branch -# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions on: - # Trigger the workflow on push or pull request, - # but only for the main branch - # push: - # branches: - # - github-actions - # - main - workflow_dispatch: - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel + schedule: + - cron: '39 20 * * 1-5' + jobs: check_date: runs-on: ubuntu-latest @@ -23,60 +12,111 @@ jobs: outputs: should_run: ${{ steps.should_run.outputs.should_run }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: print latest_commit run: echo ${{ github.sha }} - - id: should_run continue-on-error: true name: check latest commit is less than a day if: ${{ github.event_name == 'schedule' }} - run: test -z $(git rev-list --after="24 hours" ${{ github.sha }}) && echo "::set-output name=should_run::false" - + run: test -z $(git rev-list --after="24 hours" ${{ github.sha }}) && echo "::set-output name=should_run::false" + ios-deploy: name: Deploying to Testflight runs-on: macOS-latest needs: check_date + if: ${{ needs.check_date.outputs.should_run != 'false' }} + continue-on-error: false + env: + TURBO_TEAM: ${{ vars.TURBO_TEAM }} + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} steps: - - name: Checkout repository - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + - name: Cache node modules + uses: actions/cache@v4 + env: + cache-name: cache-node-modules + with: + path: ~/.npm + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + - name: Configure Turborepo Remote Cache + run: | + mkdir -p .turbo + if [ -n "${{ vars.TURBO_API_URL }}" ]; then + echo '{"apiurl": "${{ vars.TURBO_API_URL }}"}' > .turbo/config.json + echo "Turborepo config file created at .turbo/config.json" + else + echo "TURBO_API_URL not set. Skipping Turborepo cache configuration." + fi + if [ -n "$TURBO_TEAM" ] && [ -n "$TURBO_TOKEN" ]; then + echo "TURBO_TEAM and TURBO_TOKEN environment variables set" + else + echo "TURBO_TEAM and/or TURBO_TOKEN not set. Remote caching may not be available." + fi + + - name: Install jq + run: sudo apt-get install -y jq + + - name: Declare some variables + shell: bash + run: | + echo "sha_short=$(git rev-parse --short "$GITHUB_SHA")" >> "$GITHUB_ENV" + echo "app_version=$(jq -r '.version' app/package.json)" >> "$GITHUB_ENV" + - name: Create version string + shell: bash + run: | + echo "version_string=v${{env.app_version}}-android-#${{env.sha_short}}" >> "$GITHUB_ENV" + - name: Set up ruby env uses: ruby/setup-ruby@v1 with: ruby-version: 3.3.1 - bundler-cache: false - working-directory: ios/App - # No cache because permissions issues? + bundler-cache: true # changed - was false because 'permissions issues?' + working-directory: app/ios/App - run: | - cd ios/App; bundle install; bundle exec fastlane install_plugins + cd app/ios/App + bundle install + bundle exec fastlane install_plugins - name: Use Node.js 20 - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 20 cache: 'npm' - name: Use Python 3.10 uses: actions/setup-python@v4 with: - python-version: '3.10' + python-version: '3.10' - name: Building webapp run: | export platform="github-actions-ios" export serverprefix="fieldmark" - export PYTHON=python3.10 export VITE_CLUSTER_ADMIN_GROUP_NAME=cluster-admin - export VITE_COMMIT_VERSION=$(bin/getDescribeString.sh ios) + export VITE_COMMIT_VERSION=${{env.version_string}} export VITE_SHOW_WIPE=true - export VITE_SHOW_MINIFAUXTON=false - export VITE_DIRECTORY_HOST=db.testing.fieldmark.app - export VITE_DIRECTORY_PORT=443 - export VITE_TAG=prodIOS - export VITE_BUGSNAG_KEY=${{secrets.BUGSNAG_KEY}} - git clean -xfd + export VITE_SHOW_MINIFAUXTON=true + export VITE_CONDUCTOR_URL=${{vars.NIGHTLY_CONDUCTOR_URL}} + export VITE_TAG=prodAndroid + export VITE_NOTEBOOK_LIST_TYPE=${{vars.NOTEBOOK_LIST_TYPE}} + export VITE_NOTEBOOK_NAME=${{vars.NOTEBOOK_NAME}} + export VITE_THEME=${{vars.THEME}} + export VITE_BUGSNAG_KEY=${{secrets.BUGSNAG_KEY}} + export VITE_APP_ID=${{vars.APP_ID}} + export VITE_APP_NAME="${{vars.APP_NAME}}" + export VITE_SHOW_RECORD_SUMMARY_COUNTS="${{vars.VITE_SHOW_RECORD_SUMMARY_COUNTS}}" npm ci --python=python3.10 npm run build - - run: npx cap update ios - - run: npx cap sync --deployment ios - - run: cd ios/App; pod install + - name: Update IOS Build + run: | + cd app + npx cap update ios + npx cap sync --deployment ios + cd ios/App; pod install #- run: chmod -R 777 /Users/runner/hostedtoolcache/Ruby/3.0.2/x64/lib/ruby/gems/ - name: Deploy iOS Beta to TestFlight via Fastlane uses: maierj/fastlane-action@v2.3.0 @@ -86,7 +126,6 @@ jobs: bundle-install-path: '$HOME/vendor/bundle' verbose: false env: - VITE_LOGIN_TOKEN: "${{ secrets.JWT_TEST_TOKEN }}" APP_STORE_CONNECT_TEAM_ID: '${{ secrets.APP_STORE_CONNECT_TEAM_ID }}' DEVELOPER_APP_ID: '${{ secrets.DEVELOPER_APP_ID }}' DEVELOPER_APP_IDENTIFIER: '${{ secrets.DEVELOPER_APP_IDENTIFIER }}' @@ -103,9 +142,3 @@ jobs: APPLE_KEY_CONTENT: '${{ secrets.APPLE_KEY_CONTENT }}' BROWSERSTACK_USERNAME: '${{secrets.BROWSERSTACK_USERNAME}}' BROWSERSTACK_ACCESS_KEY: '${{secrets.BROWSERSTACK_ACCESS_KEY}}' - - name: Archive ipas - uses: actions/upload-artifact@v3 - with: - name: ipa - path: | - /Users/runner/work/FAIMS3/FAIMS3/ios/App/App.ipa \ No newline at end of file diff --git a/.github/workflows/fieldmark-google-play-prod.yml b/.github/workflows/fieldmark-google-play-prod.yml index ce2115bdf..08003d5e7 100644 --- a/.github/workflows/fieldmark-google-play-prod.yml +++ b/.github/workflows/fieldmark-google-play-prod.yml @@ -11,9 +11,6 @@ jobs: env: TURBO_TEAM: ${{ vars.TURBO_TEAM }} TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} - strategy: - matrix: - node-version: ['20'] steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v4 @@ -60,10 +57,10 @@ jobs: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} restore-keys: ${{ runner.os }}-gradle - - name: Use Node.js ${{ matrix.node-version }} + - name: Use Node.js 20 uses: actions/setup-node@v4 with: - node-version: ${{ matrix.node-version }} + node-version: 20 cache: 'npm' # https://docs.github.com/en/free-pro-team@latest/actions/guides/building-and-testing-java-with-gradle - name: Set up adopt JDK 1.17 diff --git a/.github/workflows/nightly-android-testbuild.yml b/.github/workflows/nightly-android-testbuild.yml index f8e5842f6..781393b1a 100644 --- a/.github/workflows/nightly-android-testbuild.yml +++ b/.github/workflows/nightly-android-testbuild.yml @@ -32,9 +32,6 @@ jobs: env: TURBO_TEAM: ${{ vars.TURBO_TEAM }} TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} - strategy: - matrix: - node-version: ['20'] steps: - uses: actions/checkout@v4 - name: Cache node modules @@ -81,10 +78,10 @@ jobs: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} restore-keys: ${{ runner.os }}-gradle - - name: Use Node.js ${{ matrix.node-version }} + - name: Use Node.js 20 uses: actions/setup-node@v4 with: - node-version: ${{ matrix.node-version }} + node-version: 20 cache: 'npm' # https://docs.github.com/en/free-pro-team@latest/actions/guides/building-and-testing-java-with-gradle - name: Set up adopt JDK 1.17