Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 41 to 46. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tj-actions/changed-files/releases">tj-actions/changed-files's releases</a>.</em></p> <blockquote> <h2>v46</h2> <blockquote> <p>[!WARNING]<br /> <strong>Security Alert:</strong> A critical security issue was identified in this action due to a compromised commit.</p> <p>This commit has been <strong>removed</strong> from all tags and branches, and necessary measures have been implemented to prevent similar issues in the future.</p> <h4><strong>Action Required:</strong></h4> <ul> <li><strong>Review your workflows executed between March 14 and March 15.</strong> If you notice unexpected output under the <code>changed-files</code> section, decode it using the following command: <code>echo 'xxx' | base64 -d | base64 -d</code><br /> If the output contains sensitive information (e.g., tokens or secrets), <strong>revoke and rotate those secrets immediately</strong>.</li> <li><strong>If your workflows reference this commit directly by its SHA</strong>, you must update them immediately to avoid using the compromised version.</li> <li><strong>If you are using tagged versions</strong> (e.g., <code>v35</code>, <code>v44.5.1</code>), no action is required as these tags have been updated and are now safe to use.</li> </ul> <p>Additionally, as a precaution, we recommend rotating any secrets that may have been exposed during this timeframe to ensure the continued security of your workflows.</p> </blockquote> <h1>Changes in v46.0.1</h1> <h2>What's Changed</h2> <ul> <li>update: sync-release-version.yml to use signed commits by <a href="https://github.com/jackton1"><code>@jackton1</code></a> in <a href="https://redirect.github.com/tj-actions/changed-files/pull/2472">tj-actions/changed-files#2472</a></li> <li>Updated README.md by <a href="https://github.com/github-actions"><code>@github-actions</code></a> in <a href="https://redirect.github.com/tj-actions/changed-files/pull/2473">tj-actions/changed-files#2473</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/tj-actions/changed-files/compare/v46...v46.0.1">https://github.com/tj-actions/changed-files/compare/v46...v46.0.1</a></p> <hr /> <h1>Changes in v46.0.0</h1> <h2>What's Changed</h2> <ul> <li>docs: update docs to highlight security issues by <a href="https://github.com/jackton1"><code>@jackton1</code></a> in <a href="https://redirect.github.com/tj-actions/changed-files/pull/2465">tj-actions/changed-files#2465</a></li> <li>fix: update github workflow update-readme.yml by <a href="https://github.com/jackton1"><code>@jackton1</code></a> in <a href="https://redirect.github.com/tj-actions/changed-files/pull/2466">tj-actions/changed-files#2466</a></li> <li>fix: update permission in update-readme.yml workflow by <a href="https://github.com/jackton1"><code>@jackton1</code></a> in <a href="https://redirect.github.com/tj-actions/changed-files/pull/2467">tj-actions/changed-files#2467</a></li> <li>fix: update update-readme.yml to sign-commits by <a href="https://github.com/jackton1"><code>@jackton1</code></a> in <a href="https://redirect.github.com/tj-actions/changed-files/pull/2468">tj-actions/changed-files#2468</a></li> <li>Updated README.md by <a href="https://github.com/github-actions"><code>@github-actions</code></a> in <a href="https://redirect.github.com/tj-actions/changed-files/pull/2469">tj-actions/changed-files#2469</a></li> <li>update: sync-release-version.yml by <a href="https://github.com/jackton1"><code>@jackton1</code></a> in <a href="https://redirect.github.com/tj-actions/changed-files/pull/2471">tj-actions/changed-files#2471</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/github-actions"><code>@github-actions</code></a> made their first contribution in <a href="https://redirect.github.com/tj-actions/changed-files/pull/2469">tj-actions/changed-files#2469</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/tj-actions/changed-files/compare/v45.0.5...v46.0.0">https://github.com/tj-actions/changed-files/compare/v45.0.5...v46.0.0</a></p> <h2>What's Changed</h2> <ul> <li>docs: update docs to highlight security issues by <a href="https://github.com/jackton1"><code>@jackton1</code></a> in <a href="https://redirect.github.com/tj-actions/changed-files/pull/2465">tj-actions/changed-files#2465</a></li> <li>fix: update github workflow update-readme.yml by <a href="https://github.com/jackton1"><code>@jackton1</code></a> in <a href="https://redirect.github.com/tj-actions/changed-files/pull/2466">tj-actions/changed-files#2466</a></li> <li>fix: update permission in update-readme.yml workflow by <a href="https://github.com/jackton1"><code>@jackton1</code></a> in <a href="https://redirect.github.com/tj-actions/changed-files/pull/2467">tj-actions/changed-files#2467</a></li> <li>fix: update update-readme.yml to sign-commits by <a href="https://github.com/jackton1"><code>@jackton1</code></a> in <a href="https://redirect.github.com/tj-actions/changed-files/pull/2468">tj-actions/changed-files#2468</a></li> <li>Updated README.md by <a href="https://github.com/github-actions"><code>@github-actions</code></a> in <a href="https://redirect.github.com/tj-actions/changed-files/pull/2469">tj-actions/changed-files#2469</a></li> <li>update: sync-release-version.yml by <a href="https://github.com/jackton1"><code>@jackton1</code></a> in <a href="https://redirect.github.com/tj-actions/changed-files/pull/2471">tj-actions/changed-files#2471</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/tj-actions/changed-files/compare/v45.0.5...v46.0.0">https://github.com/tj-actions/changed-files/compare/v45.0.5...v46.0.0</a></p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tj-actions/changed-files/blob/main/HISTORY.md">tj-actions/changed-files's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <h1><a href="https://github.com/tj-actions/changed-files/compare/v46.0.0...v46.0.1">46.0.1</a> - (2025-03-16)</h1> <h2><!-- raw HTML omitted -->🔄 Update</h2> <ul> <li>Updated README.md (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2473">#2473</a>)</li> </ul> <p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a href="2f7c5bfce2">2f7c5bf</a>) - (github-actions[bot])</p> <ul> <li>Sync-release-version.yml to use signed commits (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2472">#2472</a>) (<a href="4189ec62c4">4189ec6</a>) - (Tonye Jack)</li> </ul> <h1><a href="https://github.com/tj-actions/changed-files/compare/v45.0.9...v46.0.0">46.0.0</a> - (2025-03-16)</h1> <h2><!-- raw HTML omitted -->🐛 Bug Fixes</h2> <ul> <li>Update update-readme.yml to sign-commits (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2468">#2468</a>) (<a href="0f1ffe6185">0f1ffe6</a>) - (Tonye Jack)</li> <li>Update permission in update-readme.yml workflow (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2467">#2467</a>) (<a href="ddef03e37c">ddef03e</a>) - (Tonye Jack)</li> <li>Update github workflow update-readme.yml (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2466">#2466</a>) (<a href="9c2df0d54a">9c2df0d</a>) - (Tonye Jack)</li> </ul> <h2><!-- raw HTML omitted -->➖ Remove</h2> <ul> <li>Deleted renovate.json (<a href="e37e952786">e37e952</a>) - (Tonye Jack)</li> </ul> <h2><!-- raw HTML omitted -->🔄 Update</h2> <ul> <li>Sync-release-version.yml (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2471">#2471</a>) (<a href="4cd184a1dd">4cd184a</a>) - (Tonye Jack)</li> <li>Updated README.md (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2469">#2469</a>)</li> </ul> <p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a href="5cbf22026d">5cbf220</a>) - (github-actions[bot])</p> <h2><!-- raw HTML omitted -->📚 Documentation</h2> <ul> <li>Update docs to highlight security issues (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2465">#2465</a>) (<a href="65253327cf">6525332</a>) - (Tonye Jack)</li> </ul> <h1><a href="https://github.com/tj-actions/changed-files/compare/v45.0.4...v45.0.9">45.0.9</a> - (2025-03-15)</h1> <h2><!-- raw HTML omitted -->🐛 Bug Fixes</h2> <ul> <li><strong>deps:</strong> Update dependency <code>@octokit/rest</code> to v21.1.1 (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2435">#2435</a>) (<a href="fb8dcda5fb">fb8dcda</a>) - (renovate[bot])</li> <li><strong>deps:</strong> Update dependency <code>@octokit/rest</code> to v21.1.0 (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2394">#2394</a>) (<a href="7b72c97d73">7b72c97</a>) - (renovate[bot])</li> <li><strong>deps:</strong> Update dependency yaml to v2.7.0 (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2383">#2383</a>) (<a href="5f974c28f5">5f974c2</a>) - (renovate[bot])</li> </ul> <h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2> <ul> <li><strong>deps:</strong> Lock file maintenance (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2460">#2460</a>) (<a href="9200e69727">9200e69</a>) - (renovate[bot])</li> <li><strong>deps:</strong> Update dependency <code>@types/node</code> to v22.13.10 (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2459">#2459</a>) (<a href="e650cfdae5">e650cfd</a>) - (renovate[bot])</li> <li><strong>deps:</strong> Update dependency eslint-config-prettier to v10.1.1 (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2458">#2458</a>) (<a href="82af21f4a0">82af21f</a>) - (renovate[bot])</li> <li><strong>deps:</strong> Update dependency eslint-config-prettier to v10.1.0 (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2457">#2457</a>) (<a href="82fa4a6402">82fa4a6</a>) - (renovate[bot])</li> <li><strong>deps:</strong> Update peter-evans/create-pull-request action to v7.0.8 (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2455">#2455</a>) (<a href="315505acf4">315505a</a>) - (renovate[bot])</li> <li><strong>deps:</strong> Update dependency <code>@types/node</code> to v22.13.9 (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2454">#2454</a>) (<a href="c8e1cdb9ea">c8e1cdb</a>) - (renovate[bot])</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="2f7c5bfce2"><code>2f7c5bf</code></a> Updated README.md (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2473">#2473</a>)</li> <li><a href="4189ec62c4"><code>4189ec6</code></a> update: sync-release-version.yml to use signed commits (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2472">#2472</a>)</li> <li><a href="4cd184a1dd"><code>4cd184a</code></a> update: sync-release-version.yml (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2471">#2471</a>)</li> <li><a href="5cbf22026d"><code>5cbf220</code></a> Updated README.md (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2469">#2469</a>)</li> <li><a href="0f1ffe6185"><code>0f1ffe6</code></a> fix: update update-readme.yml to sign-commits (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2468">#2468</a>)</li> <li><a href="ddef03e37c"><code>ddef03e</code></a> fix: update permission in update-readme.yml workflow (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2467">#2467</a>)</li> <li><a href="9c2df0d54a"><code>9c2df0d</code></a> fix: update github workflow update-readme.yml (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2466">#2466</a>)</li> <li><a href="65253327cf"><code>6525332</code></a> docs: update docs to highlight security issues (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2465">#2465</a>)</li> <li><a href="e37e952786"><code>e37e952</code></a> Deleted renovate.json</li> <li><a href="a284dc1814"><code>a284dc1</code></a> Upgraded to v45.0.8 (<a href="https://redirect.github.com/tj-actions/changed-files/issues/2462">#2462</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tj-actions/changed-files/compare/v41...v46">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/appsmithorg/appsmith/network/alerts). </details> <!-- This is an auto-generated comment: Cypress test results --> > [!WARNING] > Tests have not run on the HEAD 7cc23031088dd77b20e7b899010f7343a2c5269d yet > <hr>Tue, 18 Mar 2025 06:37:37 UTC <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Chores** - Upgraded internal automation dependencies to enhance the consistency and reliability of our build and deployment processes. These improvements help maintain stability and performance across client and server operations, ensuring a smooth experience for users without any visible interface changes. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
268 lines
13 KiB
YAML
268 lines
13 KiB
YAML
name: Client Build
|
||
|
||
on:
|
||
workflow_call:
|
||
inputs:
|
||
pr:
|
||
description: "This is the PR number in case the workflow is being called in a pull request"
|
||
required: false
|
||
type: number
|
||
skip-tests:
|
||
description: "This is a boolean value in case the workflow is being called in build deploy-preview"
|
||
required: false
|
||
type: string
|
||
default: "false"
|
||
branch:
|
||
description: "This is the branch to be used for the build."
|
||
required: false
|
||
type: string
|
||
|
||
permissions:
|
||
contents: read
|
||
pull-requests: write
|
||
|
||
# Change the working directory for all "run" steps in this workflow
|
||
defaults:
|
||
run:
|
||
working-directory: app/client
|
||
shell: bash
|
||
|
||
jobs:
|
||
client-build:
|
||
runs-on: ${{ vars.RUNNER_CLIENT_BUILD }}
|
||
# Only run this workflow for internally triggered events
|
||
if: |
|
||
github.event.pull_request.head.repo.full_name == github.repository ||
|
||
github.event_name == 'push' ||
|
||
github.event_name == 'workflow_dispatch' ||
|
||
github.event_name == 'repository_dispatch' ||
|
||
github.event_name == 'schedule'
|
||
|
||
steps:
|
||
# The checkout steps MUST happen first because the default directory is set according to the code base.
|
||
# GitHub Action expects all future commands to be executed in the code directory. Hence, we need to check out
|
||
# the code before doing anything else.
|
||
|
||
# Check out merge commit with the base branch in case this workflow is invoked via pull request
|
||
- name: Checkout the merged commit from PR and base branch
|
||
if: inputs.pr != 0
|
||
uses: actions/checkout@v4
|
||
with:
|
||
fetch-tags: true
|
||
ref: refs/pull/${{ inputs.pr }}/merge
|
||
|
||
# Check out the specified branch in case this workflow is called by another workflow
|
||
- name: Checkout the specified branch
|
||
if: inputs.pr == 0 && inputs.branch != ''
|
||
uses: actions/checkout@v4
|
||
with:
|
||
fetch-tags: true
|
||
ref: ${{ inputs.branch }}
|
||
|
||
# Checkout the code in the current branch in case the workflow is called because of a branch push event
|
||
- name: Checkout the head commit of the branch
|
||
if: inputs.pr == 0 && inputs.branch == ''
|
||
uses: actions/checkout@v4
|
||
with:
|
||
fetch-tags: true
|
||
|
||
- name: Get changed files in the client folder
|
||
id: changed-files-specific
|
||
uses: tj-actions/changed-files@v46
|
||
with:
|
||
files: "app/client/**"
|
||
|
||
# - name: Updating the client changed file variable
|
||
# id: changed-files-specific
|
||
# run: echo "any_changed=true" >> "$GITHUB_OUTPUT"
|
||
|
||
- name: Run step if any file(s) in the client folder change
|
||
if: steps.changed-files-specific.outputs.any_changed == 'true'
|
||
env:
|
||
ALL_CHANGED_FILES: ${{ steps.changed-files-specific.outputs.all_changed_files }}
|
||
run: |
|
||
echo "One or more files in the server folder has changed."
|
||
echo "List all the files that have changed: $ALL_CHANGED_FILES"
|
||
|
||
- name: Check compliance
|
||
if: inputs.pr != 0 && steps.changed-files-specific.outputs.any_changed == 'true'
|
||
uses: actions/github-script@v7
|
||
env:
|
||
NODE_PATH: "${{ github.workspace }}/.github/workflows/scripts"
|
||
PR_NUMBER: ${{ inputs.pr }}
|
||
with:
|
||
script: |
|
||
await require("client-build-compliance.js")({core, github, context})
|
||
|
||
# In case this is second attempt try restoring status of the prior attempt from cache
|
||
- name: Restore the previous run result
|
||
if: steps.changed-files-specific.outputs.any_changed == 'true' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule'
|
||
uses: actions/cache@v4
|
||
with:
|
||
path: |
|
||
~/run_result
|
||
key: ${{ github.run_id }}-${{ github.job }}-client
|
||
|
||
# Fetch prior run result
|
||
- name: Get the previous run result
|
||
if: steps.changed-files-specific.outputs.any_changed == 'true' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule'
|
||
id: run_result
|
||
run: cat ~/run_result 2>/dev/null || echo 'default'
|
||
|
||
# In case of prior failure run the job
|
||
- if: steps.run_result.outputs.run_result != 'success' && (steps.changed-files-specific.outputs.any_changed == 'true' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule')
|
||
run: echo "I'm alive!" && exit 0
|
||
|
||
- name: Use Node.js
|
||
if: steps.run_result.outputs.run_result != 'success' && (steps.changed-files-specific.outputs.any_changed == 'true' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule')
|
||
uses: actions/setup-node@v4
|
||
with:
|
||
node-version-file: app/client/package.json
|
||
|
||
# actions/setup-node@v4 doesn’t work properly with Yarn 3
|
||
# when the project lives in a subdirectory: https://github.com/actions/setup-node/issues/488
|
||
# Restoring the cache manually instead
|
||
- name: Restore Yarn cache
|
||
if: steps.run_result.outputs.run_result != 'success' && (steps.changed-files-specific.outputs.any_changed == 'true' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule')
|
||
uses: actions/cache@v4
|
||
id: cache-dependencies
|
||
with:
|
||
path: |
|
||
app/client/.yarn/cache
|
||
app/client/node_modules/.cache/webpack/
|
||
key: v1-yarn3-${{ hashFiles('app/client/yarn.lock') }}
|
||
|
||
# Install all the dependencies
|
||
- name: Install dependencies
|
||
if: steps.run_result.outputs.run_result != 'success' && (steps.changed-files-specific.outputs.any_changed == 'true' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule')
|
||
run: yarn install --immutable
|
||
|
||
# Type checking before starting the build
|
||
- name: Run type check
|
||
if: steps.run_result.outputs.run_result != 'success' && (steps.changed-files-specific.outputs.any_changed == 'true' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule')
|
||
run: yarn run check-types
|
||
|
||
- name: Set the build environment based on the branch
|
||
if: steps.run_result.outputs.run_result != 'success' && (steps.changed-files-specific.outputs.any_changed == 'true' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule')
|
||
id: vars
|
||
run: |
|
||
set +o pipefail
|
||
echo "REACT_APP_ENVIRONMENT=DEVELOPMENT" >> $GITHUB_OUTPUT
|
||
if [[ "${{github.ref}}" == "refs/heads/master" ]]; then
|
||
echo "REACT_APP_ENVIRONMENT=PRODUCTION" >> $GITHUB_OUTPUT
|
||
fi
|
||
if [[ "${{github.ref}}" == "refs/heads/release" ]]; then
|
||
echo "REACT_APP_ENVIRONMENT=STAGING" >> $GITHUB_OUTPUT
|
||
fi
|
||
|
||
# We burn React environment & the Segment analytics key into the build itself.
|
||
# This is to ensure that we don't need to configure it in each installation.
|
||
# Client build fails only on errors (EXIT_CODE > 1); warnings (EXIT_CODE <= 1) don’t affect it.
|
||
- name: Create the bundle
|
||
if: steps.changed-files-specific.outputs.any_changed == 'true' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule'
|
||
run: |
|
||
if [[ "${{ github.ref }}" == "refs/heads/master" ]]; then
|
||
export REACT_APP_SEGMENT_CE_KEY="${{ secrets.APPSMITH_SEGMENT_CE_KEY }}"
|
||
else
|
||
export REACT_APP_SEGMENT_CE_KEY="${{ secrets.APPSMITH_SEGMENT_CE_KEY_RELEASE }}"
|
||
fi
|
||
REACT_APP_ENVIRONMENT=${{steps.vars.outputs.REACT_APP_ENVIRONMENT}} \
|
||
REACT_APP_FARO_APP_ID=${{ secrets.REACT_APP_FARO_APP_ID }} \
|
||
REACT_APP_FARO_APP_NAME=${{ secrets.REACT_APP_FARO_APP_NAME }} \
|
||
REACT_APP_FARO_SOURCEMAP_UPLOAD_API_KEY=${{ secrets.REACT_APP_FARO_SOURCEMAP_UPLOAD_API_KEY }} \
|
||
REACT_APP_FARO_SOURCEMAP_UPLOAD_ENDPOINT=${{ secrets.REACT_APP_FARO_SOURCEMAP_UPLOAD_ENDPOINT }} \
|
||
REACT_APP_FARO_STACK_ID=${{ secrets.REACT_APP_FARO_STACK_ID }} \
|
||
REACT_APP_FUSIONCHARTS_LICENSE_KEY=${{ secrets.APPSMITH_FUSIONCHARTS_LICENSE_KEY }} \
|
||
SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} \
|
||
REACT_APP_VERSION_EDITION="Community" \
|
||
yarn build || EXIT_CODE=$?
|
||
|
||
if [ -n "$EXIT_CODE" ] && [ "$EXIT_CODE" -gt 1 ]; then
|
||
exit $EXIT_CODE
|
||
fi
|
||
|
||
# Saving the cache to use it in subsequent runs
|
||
- name: Save Yarn cache
|
||
uses: actions/cache/save@v4
|
||
if: steps.cache-dependencies.outputs.cache-hit != 'true' && (steps.changed-files-specific.outputs.any_changed == 'true' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule')
|
||
with:
|
||
path: |
|
||
app/client/.yarn/cache
|
||
app/client/node_modules/.cache/webpack/
|
||
key: v1-yarn3-${{ hashFiles('app/client/yarn.lock') }}
|
||
|
||
# Restore the previous built bundle if present. If not push the newly built into the cache
|
||
- name: Restore the previous bundle
|
||
if: steps.changed-files-specific.outputs.any_changed == 'true' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule'
|
||
uses: actions/cache@v4
|
||
with:
|
||
path: |
|
||
app/client/build/
|
||
key: ${{ github.run_id }}-${{ github.job }}-client
|
||
|
||
- name: Pack the client build directory
|
||
if: steps.changed-files-specific.outputs.any_changed == 'true' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule'
|
||
run: |
|
||
tar -cvf ./build.tar -C build .
|
||
|
||
- name: Fetch client build from cache
|
||
if: steps.changed-files-specific.outputs.any_changed == 'false' && success() && github.event_name != 'push' && github.event_name != 'workflow_dispatch' && github.event_name != 'schedule'
|
||
env:
|
||
cachetoken: ${{ secrets.CACHETOKEN }}
|
||
reponame: ${{ github.event.repository.name }}
|
||
gituser: ${{ secrets.CACHE_GIT_USER }}
|
||
gituseremail: ${{ secrets.CACHE_GIT_EMAIL }}
|
||
run: |
|
||
mkdir cacherepo
|
||
cd ./cacherepo
|
||
git lfs install
|
||
git config --global user.email "$gituseremail"
|
||
git config --global user.name "$gituser"
|
||
git clone https://$cachetoken@github.com/appsmithorg/cibuildcache.git
|
||
if [ "$reponame" = "appsmith" ]; then export repodir="CE"; fi
|
||
if [ "$reponame" = "appsmith-ee" ]; then export repodir="EE"; fi
|
||
cd cibuildcache/$repodir/release/client
|
||
git lfs install
|
||
git lfs migrate import --everything --yes
|
||
git lfs pull ./build.tar
|
||
mv ./build.tar ../../../../../build.tar
|
||
|
||
# Upload the build artifact so that it can be used by the test & deploy job in the workflow
|
||
- name: Upload react build bundle
|
||
uses: actions/upload-artifact@v4
|
||
with:
|
||
name: client-build
|
||
path: app/client/build.tar
|
||
overwrite: true
|
||
|
||
- name: Put release build in cache
|
||
if: success() && github.ref == 'refs/heads/release' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule')
|
||
env:
|
||
cachetoken: ${{ secrets.CACHETOKEN }}
|
||
reponame: ${{ github.event.repository.name }}
|
||
gituser: ${{ secrets.CACHE_GIT_USER }}
|
||
gituseremail: ${{ secrets.CACHE_GIT_EMAIL }}
|
||
# git lfs update --force in the script below overrides appsmith git hooks with git lfs hooks since appsmith hooks are not required during workflow runs
|
||
run: |
|
||
pwd
|
||
mkdir cacherepo
|
||
cd ./cacherepo
|
||
git config --global user.email "$gituseremail"
|
||
git config --global user.name "$gituser"
|
||
git clone https://$cachetoken@github.com/appsmithorg/cibuildcache.git
|
||
git lfs update --force
|
||
git lfs install
|
||
cd cibuildcache/
|
||
if [ "$reponame" = "appsmith" ]; then export repodir="CE"; fi
|
||
if [ "$reponame" = "appsmith-ee" ]; then export repodir="EE"; fi
|
||
cd $repodir/release/client
|
||
cp ../../../../../build.tar ./
|
||
git lfs track "build.tar"
|
||
git add build.tar
|
||
git commit --allow-empty -m "Update Latest build.tar"
|
||
git push
|
||
|
||
# Set status = success
|
||
- name: Save the status of the run
|
||
run: echo "run_result=success" >> $GITHUB_OUTPUT > ~/run_result
|