* Call cloud services to fetch mock datasets * Call cloud services to fetch mock datasets * Change the MockData Config, * Remove unused import statements and fix small indentation issues * 1. Moved the mock data creation and fetching to a separate class 2. Added plugin type to mockdata class 3. Used pluginName to identify the db type 4. Removed the block call mock data creating method 5. Added unit tests for the mockdata * 1. Removed unused field from contract and 2. Updated the url to cloud service * 1. renamed the field of mockdata contract 2. Updated the test cases * using new mock datasources apis * 1. Added the Cloud Service release end point to env variable Co-authored-by: Pranav Kanade <pranav@appsmith.com>
155 lines
6.4 KiB
YAML
155 lines
6.4 KiB
YAML
# This workflow is responsible for building, testing & packaging the Java server codebase
|
|
name: Appsmith Server Workflow
|
|
|
|
on:
|
|
# This line enables manual triggering of this workflow.
|
|
workflow_dispatch:
|
|
|
|
push:
|
|
branches: [release, release-frozen, master]
|
|
# Only trigger if files have changed in this specific path
|
|
paths:
|
|
- "app/server/**"
|
|
|
|
pull_request:
|
|
branches: [release, master]
|
|
paths:
|
|
- "app/server/**"
|
|
|
|
# Change the working directory for all the jobs in this workflow
|
|
defaults:
|
|
run:
|
|
working-directory: app/server
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
# 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'
|
|
|
|
# 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:
|
|
# Checkout the code
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
# Setup Java
|
|
- name: Set up JDK 1.11
|
|
uses: actions/setup-java@v1
|
|
with:
|
|
java-version: "11.0.10"
|
|
|
|
# Retrieve maven dependencies from cache. After a successful run, these dependencies are cached again
|
|
- name: Cache maven dependencies
|
|
uses: actions/cache@v2
|
|
env:
|
|
cache-name: cache-maven-dependencies
|
|
with:
|
|
# maven dependencies are stored in `~/.m2` on Linux/macOS
|
|
path: ~/.m2
|
|
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
|
|
restore-keys: ${{ runner.os }}-m2
|
|
|
|
# Here, the GITHUB_REF is of type /refs/head/<branch_name>. We extract branch_name from this by removing the
|
|
# first 11 characters. This can be used to build images for several branches
|
|
# Since this is an unreleased build, we get the latest released version number, increment the minor number in it,
|
|
# append a `-SNAPSHOT` at it's end to prepare the snapshot version number. This is used as the project's version.
|
|
- name: Get the version to tag the Docker image
|
|
id: vars
|
|
run: |
|
|
# Since this is an unreleased build, we set the version to incremented version number with a
|
|
# `-SNAPSHOT` suffix.
|
|
latest_released_version="$(git tag --list 'v*' --sort=-version:refname | head -1)"
|
|
echo "latest_released_version = $latest_released_version"
|
|
next_version="$(echo "$latest_released_version" | awk -F. -v OFS=. '{ $NF++; print }')"
|
|
echo "next_version = $next_version"
|
|
echo ::set-output name=version::$next_version-SNAPSHOT
|
|
echo ::set-output name=tag::$(echo ${GITHUB_REF:11})
|
|
|
|
# Build and test the code
|
|
- name: Build and test
|
|
env:
|
|
APPSMITH_MONGODB_URI: "mongodb://localhost:27017/mobtools"
|
|
APPSMITH_CLOUD_SERVICES_BASE_URL: "https://release-cs.appsmith.com"
|
|
APPSMITH_REDIS_URL: "redis://127.0.0.1:6379"
|
|
APPSMITH_ENCRYPTION_PASSWORD: "password"
|
|
APPSMITH_ENCRYPTION_SALT: "salt"
|
|
APPSMITH_IS_SELF_HOSTED: false
|
|
run: |
|
|
mvn --batch-mode versions:set \
|
|
-DnewVersion=${{ steps.vars.outputs.version }} \
|
|
-DgenerateBackupPoms=false \
|
|
-DprocessAllModules=true
|
|
mvn --batch-mode package
|
|
|
|
# Build release Docker image and push to Docker Hub
|
|
- name: Push release image to Docker Hub
|
|
if: success() && github.ref == 'refs/heads/release'
|
|
run: |
|
|
docker build --build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${{steps.vars.outputs.tag}} .
|
|
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${{steps.vars.outputs.tag}}
|
|
|
|
# Build release-frozen Docker image and push to Docker Hub
|
|
- name: Push release-frozen image to Docker Hub
|
|
if: success() && github.ref == 'refs/heads/release-frozen'
|
|
run: |
|
|
docker build --build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${{steps.vars.outputs.tag}} .
|
|
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${{steps.vars.outputs.tag}}
|
|
|
|
# Build master Docker image and push to Docker Hub
|
|
- name: Push master image to Docker Hub with commit tag
|
|
if: success() && github.ref == 'refs/heads/master'
|
|
run: |
|
|
docker build --build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${GITHUB_SHA} .
|
|
docker build --build-arg APPSMITH_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} -t ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:nightly .
|
|
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:${GITHUB_SHA}
|
|
docker push ${{ secrets.DOCKER_HUB_ORGANIZATION }}/appsmith-server:nightly
|
|
|
|
# These are dummy jobs in the CI build to satisfy required status checks for merging PRs. This is a hack because Github doesn't support conditional
|
|
# required checks in monorepos. These jobs are a clone of similarly named jobs in client.yml.
|
|
#
|
|
# Check support request at: https://github.community/t/feature-request-conditional-required-checks/16761
|
|
ui-test:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
job: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
|
|
|
|
steps:
|
|
# Checkout the code
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Do nothing as this is a dummy step
|
|
shell: bash
|
|
run: |
|
|
exit 0
|
|
|
|
package:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
# Checkout the code
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Do nothing as this is a dummy step
|
|
shell: bash
|
|
run: |
|
|
exit 0
|