## Description
Flapdoodle, our Mongo embedded testing library throws errors when
running Junit tests on Ubuntu 24.04. This is because of a mismatch of
openssl version from Ubuntu 22.04 to Ubuntu 24.04. Hence pinning our CI
for server builds to Ubuntu 22.04 for now. Will issue a holistic fix
with Flapdoodle upgrade later.
## Automation
/ok-to-test tags=""
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!CAUTION]
> If you modify the content in this section, you are likely to disrupt
the CI result for your PR.
<!-- end of auto-generated comment: Cypress test results -->
## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Chores**
- Updated GitHub Actions workflow configurations for server build and
integration tests
- Migrated workflow environments from `ubuntu-latest-8-cores` to
`ubuntu-22.04-8core`
- Refined workflow logic for test execution and artifact management
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
107 lines
3.4 KiB
YAML
107 lines
3.4 KiB
YAML
name: Server Integrations Tests Workflow
|
|
|
|
on:
|
|
# This line enables manual triggering of this workflow.
|
|
workflow_dispatch:
|
|
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
|
|
is-pg-build:
|
|
description: "Flag for PG build"
|
|
required: false
|
|
type: string
|
|
default: "false"
|
|
|
|
jobs:
|
|
run-tests:
|
|
runs-on: ubuntu-22.04-8core
|
|
if: |
|
|
github.event.pull_request.head.repo.full_name == github.repository ||
|
|
github.event_name == 'workflow_dispatch'
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
# Service containers to run with this job. Required for running tests
|
|
services:
|
|
# Label used to access the service container
|
|
redis:
|
|
# Docker Hub image for Redis
|
|
image: redis
|
|
ports:
|
|
# Opens tcp port 6379 on the host and service container
|
|
- 6379:6379
|
|
|
|
steps:
|
|
# Check out merge commit
|
|
- name: Fork based /ok-to-test checkout
|
|
if: inputs.pr != 0
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: "refs/pull/${{ inputs.pr }}/merge"
|
|
|
|
# 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
|
|
uses: actions/checkout@v4
|
|
|
|
# Setup Java
|
|
- name: Set up JDK 17
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
distribution: "temurin"
|
|
java-version: "17"
|
|
|
|
- name: Conditionally start PostgreSQL
|
|
if: |
|
|
inputs.is-pg-build == 'true'
|
|
run: |
|
|
docker run --name appsmith-pg -p 5432:5432 -d -e POSTGRES_PASSWORD=password postgres:alpine postgres -N 1500
|
|
|
|
- name: Download the server build artifact
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: server-build
|
|
path: app/server/dist/
|
|
|
|
- name: Download the rts build artifact
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: rts-dist
|
|
path: app/client/packages/rts/dist
|
|
|
|
- name: Un-tar the rts folder
|
|
run: |
|
|
tar -xvf app/client/packages/rts/dist/rts-dist.tar -C app/client/packages/rts/
|
|
echo "Cleaning up the rts tar files"
|
|
rm app/client/packages/rts/dist/rts-dist.tar
|
|
|
|
- name: Run rts using the untarred files
|
|
run: |
|
|
nohup -- node app/client/packages/rts/dist/bundle/server.js &
|
|
|
|
- name: Run only integration tests on server
|
|
env:
|
|
ACTIVE_PROFILE: test
|
|
APPSMITH_CLOUD_SERVICES_BASE_URL: "https://release-cs.appsmith.com"
|
|
APPSMITH_CLOUD_SERVICES_TEMPLATE_UPLOAD_AUTH: ${{ secrets.APPSMITH_CLOUD_SERVICES_TEMPLATE_UPLOAD_AUTH }}
|
|
APPSMITH_REDIS_URL: "redis://127.0.0.1:6379"
|
|
APPSMITH_ENCRYPTION_PASSWORD: "password"
|
|
APPSMITH_ENCRYPTION_SALT: "salt"
|
|
APPSMITH_ENVFILE_PATH: /tmp/dummy.env
|
|
APPSMITH_VERBOSE_LOGGING_ENABLED: false
|
|
run: |
|
|
if [[ "${{ inputs.is-pg-build }}" == "true" ]]; then
|
|
export APPSMITH_DB_URL="postgresql://postgres:password@localhost:5432/postgres"
|
|
else
|
|
export APPSMITH_DB_URL="mongodb://localhost:27017/mobtools"
|
|
fi
|
|
|
|
args=()
|
|
|
|
# Run tests and capture logs
|
|
cd app/server
|
|
mvn verify -DskipUTs=true "${args[@]}" | tee mvn_integration_test.log
|