Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
4a63176
test: Admin setting test cases (#38172)
sagar-qa007 Dec 23, 2024
2eac193
fix: Fix for locator for AddWidgetTableAndBind_spec test case (#38313)
sagar-qa007 Dec 23, 2024
c5238ff
test: added new case (#38308)
sagar-qa007 Dec 23, 2024
e45cbdf
test: Git integration tests (#38237)
nidhi-nair Dec 23, 2024
5855115
chore: Adding no access state for Datasource tab based on permissions…
ankitakinger Dec 23, 2024
bc38ee7
chore: Revert "test: Git integration tests (#38237)" (#38333)
nidhi-nair Dec 23, 2024
d3ea54d
chore: Add code-split for injecting JIT pull in app CI/CD (#38270)
subrata71 Dec 24, 2024
ddb83c0
chore: Move smaller Entity Explorer components into ADS (#38321)
hetunandu Dec 24, 2024
7a6358e
feat: Updated ads-old table to accept custom row component (#38334)
albinAppsmith Dec 24, 2024
cda656b
feat: add alignment property in style pane for table button cell (#38…
jacquesikot Dec 24, 2024
16953b8
fix: cannot see move to page option when there are exactly two pages …
alex-golovanov Dec 24, 2024
52a394f
fix: prevent menu content to be rendered when there are no options (#…
alex-golovanov Dec 24, 2024
f2733c6
test: Git integration tests (#38337)
nidhi-nair Dec 24, 2024
d9a3253
chore: Moved git auth creation and updation to generified artifactser…
nidhi-nair Dec 24, 2024
ecf9934
chore: fix wds select widget bugs + refactor (#38304)
jsartisan Dec 24, 2024
c0d393a
fix: kebab menu rename jumps to wrong tab (#38346)
alex-golovanov Dec 24, 2024
a8cb8aa
chore: added interface changes to the server (#38258)
sondermanish Dec 24, 2024
2dfa24e
chore: Added capability of running ITs on maven (#38354)
nidhi-nair Dec 24, 2024
65391ab
fix: calendly link on schedule a call click, jira and slack integrati…
Dec 25, 2024
f078ec0
chore: Minor code refactor for seat based pricing (#38359)
trishaanand Dec 25, 2024
0c1a1d8
fix: query tab scrollbar padding gap fix (#38317)
alex-golovanov Dec 25, 2024
199233b
test: new test case for renaming JS Object (#38361)
shadabbuchh Dec 25, 2024
1be746c
fix: add max length to js run function name (#38363)
alex-golovanov Dec 25, 2024
0605501
chore: Fixing the top padding for queries and JS empty state to match…
ankitakinger Dec 25, 2024
3334fd7
fix: common form editor header z-index (#38367)
alex-golovanov Dec 26, 2024
6505dae
chore: add grafana faro sdk (CE) (#38301)
Dec 26, 2024
bc2480d
ci: Fix for command without spec (#38353)
sagar-qa007 Dec 26, 2024
3c802d9
chore: removed duplicate spec (#38342)
sagar-qa007 Dec 26, 2024
b9504b6
fix: Minor changes in Datasource and API (#38371)
hetunandu Dec 26, 2024
6905aa9
ci: Don't tag `latest` when not latest version (#38296)
sharat87 Dec 26, 2024
542814a
fix: Checking fix working for js indent failure (#38382)
sagar-qa007 Dec 27, 2024
257828b
fix: fix url evaluation (#38380)
alex-golovanov Dec 27, 2024
092445e
chore: Removed unwanted focus test case (#38351)
sagar-qa007 Dec 27, 2024
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
5 changes: 3 additions & 2 deletions .github/workflows/build-client-server-count.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,11 @@ jobs:
else
echo "update_snapshot=$checkArg" >> $GITHUB_OUTPUT
fi

# Check for spec file
checkArg=${{ github.event.client_payload.slash_command.args.named.specs_to_run }}
if [[ -z "$checkArg" ]]; then
echo "specs_to_run=''" >> $GITHUB_OUTPUT
echo "specs_to_run='no_data'" >> $GITHUB_OUTPUT
else
echo "specs_to_run=$checkArg" >> $GITHUB_OUTPUT
fi
Expand Down Expand Up @@ -114,7 +115,7 @@ jobs:
body: |
Tests running at: <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}>.
[Cypress dashboard](https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=${{ github.run_id }}&attempt=${{ github.run_attempt }}&selectiontype=test&testsstatus=failed&specsstatus=fail)
PR: #${{ fromJson(steps.args.outputs.pr) }} with spec: ${{steps.args.outputs.specs_to_run}} .
PR: #${{ fromJson(steps.args.outputs.pr) }} .

server-build:
name: server-build
Expand Down
61 changes: 50 additions & 11 deletions .github/workflows/ci-test-limited-with-count.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ on:
description: 'Cypress spec file(s) to run'
required: false
type: string
default: 'no_data'

workflow_call:
inputs:
Expand All @@ -53,7 +54,8 @@ on:
specs_to_run:
description: 'Cypress spec file(s) to run'
required: false
type: string
type: string
default: 'no_data'

jobs:
ci-test-limited:
Expand Down Expand Up @@ -139,21 +141,58 @@ jobs:
path: ${{ github.workspace }}/app/client/cypress/snapshots
overwrite: true

# Get specs to run
# Step to get specs from the file or use the provided specs
- name: Get specs to run
if: ${{ (inputs.specs_to_run == '' || inputs.specs_to_run == null || !inputs.specs_to_run) && steps.run_result.outputs.run_result != 'success' && steps.run_result.outputs.run_result != 'failedtest' }}
run: |
specs_to_run=""
while IFS= read -r line
do
if [[ $line =~ ^#|^\/\/ ]]; then
continue
# Check if specs_to_run is provided; if not, use the fallback file
echo "[DEBUG] Initial specs_to_run value: $specs_to_run"
if [[ -z "$specs_to_run" || "$specs_to_run" == "no_data" ]]; then
echo "[INFO] No specs provided, falling back to limited-tests.txt file."

# Verify if the fallback file exists
if [[ ! -f app/client/cypress/limited-tests.txt ]]; then
echo "[ERROR] limited-tests.txt file not found in app/client/cypress!" >&2
exit 1
else
specs_to_run="$specs_to_run,$line"
echo "[DEBUG] limited-tests.txt file found. Proceeding to read specs."
fi

specs_to_run=""

# Read each line of limited-tests.txt
while IFS= read -r line || [[ -n "$line" ]]; do
# Log each line being read
echo "[DEBUG] Reading line: $line"

# Skip comments and empty lines
if [[ $line =~ ^#|^\/\/ || -z $line ]]; then
echo "[DEBUG] Skipping comment/empty line: $line"
continue
else
echo "[DEBUG] Adding spec to specs_to_run: $line"
specs_to_run="$specs_to_run,$line"
fi
done < app/client/cypress/limited-tests.txt

# Remove leading comma
specs_to_run=${specs_to_run#,}
echo "[DEBUG] Final specs_to_run after processing limited-tests.txt: $specs_to_run"

# If no specs found, return an error
if [[ -z "$specs_to_run" ]]; then
echo "[ERROR] No specs found in limited-tests.txt after processing!" >&2
exit 1
fi
done < app/client/cypress/limited-tests.txt
specs_to_run=${specs_to_run#,}
else
echo "[INFO] Using provided specs: $specs_to_run"
fi

# Log the final specs_to_run value before writing it to GitHub environment
echo "[DEBUG] Setting specs_to_run to GitHub environment variable: $specs_to_run"

# Set the final specs_to_run to GitHub environment variable
echo "specs_to_run=$specs_to_run" >> $GITHUB_ENV


# In case of run-id provided download the artifact from the previous run
- name: Download Docker image artifact
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/client-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@ jobs:
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"
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'
Expand Down Expand Up @@ -166,6 +166,11 @@ jobs:
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" \
Expand Down
38 changes: 20 additions & 18 deletions .github/workflows/github-release.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Appsmith Github Release Workflow
name: Github Release

# This workflow builds Docker images for server and client, and then pushes them to Docker Hub.
# The docker-tag with which this push happens is `latest` and the release tag (e.g., v1.2.3 etc.).
Expand All @@ -17,24 +17,27 @@ jobs:
runs-on: ubuntu-latest

outputs:
tag: ${{ steps.get_version.outputs.tag }}
tag: ${{ steps.main.outputs.tag }}
docker_tags: ${{ steps.main.outputs.docker_tags }}

steps:
- name: Environment details
run: |
echo "PWD: $PWD"
echo "GITHUB_REF: $GITHUB_REF"
echo "GITHUB_SHA: $GITHUB_SHA"
echo "GITHUB_EVENT_NAME: $GITHUB_EVENT_NAME"
- uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
fetch-depth: "5"
fetch-tags: "true"

- name: Get the version
id: get_version
run: |
if ! [[ ${GITHUB_REF-} =~ ^refs/tags/v[[:digit:]]\.[[:digit:]]+(\.[[:digit:]]+)?$ ]]; then
echo "Invalid tag: '${GITHUB_REF-}'. Has to be like `v1.22`, `v1.22.33` only."
exit 1
fi
echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: Prelude checks and preparations
uses: actions/github-script@v7
id: main
with:
script: |
require(
"${{ github.workspace }}/.github/workflows/scripts/github-release/prelude.js",
)(
{ core, context, github },
"${{ vars.DOCKER_HUB_ORGANIZATION }}/appsmith-${{ vars.EDITION }}",
)

client-build:
needs:
Expand Down Expand Up @@ -273,5 +276,4 @@ jobs:
APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }}
BASE=${{ vars.DOCKER_HUB_ORGANIZATION }}/base-${{ vars.EDITION }}:nightly
tags: |
${{ vars.DOCKER_HUB_ORGANIZATION }}/appsmith-${{ vars.EDITION }}:${{needs.prelude.outputs.tag}}
${{ vars.DOCKER_HUB_ORGANIZATION }}/appsmith-${{ vars.EDITION }}:latest
${{ needs.prelude.outputs.docker_tags }}
53 changes: 53 additions & 0 deletions .github/workflows/scripts/github-release/prelude.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
const { exec } = require("child_process");

module.exports = async function ({ core, context }, imageRepo) {
core.summary.addTable([
[{ data: "PWD", header: true }, process.cwd()],
[{ data: "GITHUB_REF", header: true }, context.ref],
[{ data: "GITHUB_SHA", header: true }, context.sha],
[{ data: "GITHUB_EVENT_NAME", header: true }, context.eventName],
]);

if (!context.ref?.match(/^refs\/tags\/v/)) {
core.setFailed(`Invalid tag: '${context.ref}'. Has to be like 'v1.22', 'v1.22.33' only.`);
return;
}

// Current version being tagged, including the 'v' prefix.
const thisVersion = context.ref.replace("refs/tags/", "");
core.setOutput("tag", thisVersion);

// The latest version of Appsmith available, including the 'v' prefix, including the currently tagged version.
const latestVersion = await getLatestTag();

// The docker tags to be pushed to the registry.
const dockerTags = [
`${imageRepo}:${thisVersion}`,
];

if (latestVersion === thisVersion) {
dockerTags.push(`${imageRepo}:latest`);
}

core.summary.addHeading("Docker image tags", 3);
core.summary.addCodeBlock(dockerTags.join("\n"));
core.setOutput("docker_tags", dockerTags.join("\n"));

core.summary.write();
}

function getLatestTag() {
return new Promise((resolve, reject) => {
exec("git tag --list --sort=-version:refname 'v*' | head -1", (error, stdout, stderr) => {
if (error) {
reject(`exec error: ${error}`);
return;
}
if (stderr) {
reject(`stderr: ${stderr}`);
return;
}
resolve(stdout.trim());
});
});
}
34 changes: 14 additions & 20 deletions app/client/craco.build.config.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
/* eslint-disable @typescript-eslint/no-var-requires */
const SentryWebpackPlugin = require("@sentry/webpack-plugin");
const { merge } = require("webpack-merge");
const common = require("./craco.common.config.js");
const WorkboxPlugin = require("workbox-webpack-plugin");
const CompressionPlugin = require("compression-webpack-plugin");
const { RetryChunkLoadPlugin } = require("webpack-retry-chunk-load-plugin");
const FaroSourceMapUploaderPlugin = require("@grafana/faro-webpack-plugin");
const path = require("path");

const env = process.env.REACT_APP_ENVIRONMENT;
Expand Down Expand Up @@ -39,26 +39,20 @@ plugins.push(
);

if (env === "PRODUCTION" || env === "STAGING") {
if (
process.env.SENTRY_AUTH_TOKEN != null &&
process.env.SENTRY_AUTH_TOKEN !== ""
) {
plugins.push(
new SentryWebpackPlugin({
include: "build",
ignore: ["node_modules", "webpack.config.js"],
release: process.env.REACT_APP_SENTRY_RELEASE,
deploy: {
env: process.env.REACT_APP_SENTRY_ENVIRONMENT,
},
}),
);
} else {
console.log(
"Sentry configuration missing in process environment. Sentry will be disabled.",
);
}
plugins.push(
new FaroSourceMapUploaderPlugin({
appId: process.env.REACT_APP_FARO_APP_ID,
appName: process.env.REACT_APP_FARO_APP_NAME,
endpoint: process.env.REACT_APP_FARO_SOURCEMAP_UPLOAD_ENDPOINT,
stackId: process.env.REACT_APP_FARO_STACK_ID,
// instructions on how to obtain your API key are in the documentation
// https://grafana.com/docs/grafana-cloud/monitor-applications/frontend-observability/sourcemap-upload-plugins/#obtain-an-api-key
apiKey: process.env.REACT_APP_FARO_SOURCEMAP_UPLOAD_API_KEY,
gzipContents: true,
}),
);
}

plugins.push(new CompressionPlugin());

plugins.push(
Expand Down
Loading
Loading