diff --git a/.github/workflows/README.md b/.github/workflows/README.md new file mode 100644 index 0000000000..86e61ac693 --- /dev/null +++ b/.github/workflows/README.md @@ -0,0 +1,84 @@ +The following list describes all the workflows that are configured to run in this repository: + +## Release process related Actions + +1. [Build RTS Workflow](#build-rts-workflow) +2. [Appsmith Client Build Workflow](#appsmith-client-build-workflow) +3. [Appsmith External Integration Test Workflow](#appsmith-external-integration-test-workflow) +4. [Appsmith Github Release Workflow](#appsmith-github-release-workflow) +5. [Ok To Test](#ok-to-test) +6. [Appsmith Server Workflow](#appsmith-server-workflow) +7. [Test, build and push Docker Image](#test-build-and-push-docker-image) + +## Utility Actions + +1. [Mark stale issues and pull requests](#mark-stale-issues-and-pull-requests) +2. [Label PRs based on title](#label-prs-based-on-title) +3. [Release Drafter](#release-drafter) +4. [Remove old artifacts](#remove-old-artifacts) +5. [Sync Community workflow](#sync-community-workflow) +6. [Potential Duplicate Issues](#potential-duplicate-issues) +7. [Mastermind Labeler Workflow](#mastermind-labeler-workflow) + +#### Build RTS Workflow + +_Workflow file: [build-rts.yml](build-rts.yml)_ +Triggered on every commit to the rts folder. This workflow is responsible for building the RTS Node server. There are dummy steps for ui-tests and packaging. **(Comment: Useless right now because it does not have ui-test-result)** + +#### Appsmith Client Build Workflow + +_Workflow file: [client-build.yml](client-build.yml)_ +Triggered on every commit to the client folder. This workflow is responsible for building & unit-testing the client side. + +#### Appsmith Server Workflow + +_Workflow file: [server.yml](server.yml)_ +Triggered on every commit to the server folder. This workflow is responsible for building & unit-testing the Java server codebase. + +#### Appsmith External Integration Test Workflow + +_Workflow file: [external-client-test.yml](external-client-test.yml)_ +Triggered only by the ok to test command dispatch. This workflow is responsible for building, unit-testing, integration testing and packaging both server and client code base. **(Comment: Notably not RTS)** + +#### Appsmith Github Release Workflow + +_Workflow file: [github-release.yml](github-release.yml)_ +Triggered on `release` event on Github. This workflow is responsible for building client, server and RTS binaries and packaging them to the latest as well as the relevant release tag on Docker. + +#### Ok To Test + +_Workflow file: [ok-to-test.yml](ok-to-test.yml)_ +Triggered by PR comments. This workflow triggers a repository dispatch for the [Appsmith External Integration Test Workflow](#appsmith-external-integration-test-workflow). + +#### Test, build and push Docker Image + +_Workflow file: [test-build-docker-image.yml](test-build-docker-image.yml)_ +Triggered by PR reviews and push to release or master. This workflow is responsible for building client, server and RTS binaries and packaging them to fata container as well as the older separate containers. + +#### Mark stale issues and pull requests + +_Workflow file: [stale.yml](stale.yml)_ + +#### Label PRs based on title + +_Workflow file: [pr-labeler.yml](pr-labeler.yml)_ + +#### Release Drafter + +_Workflow file: [release-drafter.yml](release-drafter.yml)_ + +#### Remove old artifacts + +_Workflow file: [remove-old-artifacts.yml](remove-old-artifacts.yml)_ + +#### Sync Community workflow + +_Workflow file: [sync-community-repo.yml](sync-community-repo.yml)_ + +#### Potential Duplicate Issues + +_Workflow file: [duplicate-issue-detector.yml](duplicate-issue-detector.yml)_ + +#### Mastermind Labeler Workflow + +_Workflow file: [mastermind-labeler.yml](mastermind-labeler.yml)_ diff --git a/.github/workflows/build-rts.yml b/.github/workflows/build-rts.yml index 9fc4aaca53..511c8a182f 100644 --- a/.github/workflows/build-rts.yml +++ b/.github/workflows/build-rts.yml @@ -1,4 +1,4 @@ -# This workflow is responsible for building, testing & packaging the Java server codebase +# This workflow is responsible for building, testing & packaging the RTS Node server. name: Build RTS Workflow on: diff --git a/.github/workflows/github-release.yml b/.github/workflows/github-release.yml index 68cb6c7473..cfb12cb42d 100644 --- a/.github/workflows/github-release.yml +++ b/.github/workflows/github-release.yml @@ -1,10 +1,10 @@ name: Appsmith Github Release Workflow -# This workflow builds Docker images for server and client, and then pushes them to Docher Hub. -# The docker-tag with which this push happens in the release tag (e.g., v1.2.3 etc.). +# 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 the release tag (e.g., v1.2.3 etc.). # In addition to the above tag, unless the git-tag matches `*beta*`, we also push to the `latest` docker-tag. # This workflow does NOT run tests. -# This workflow is automatically triggered when a relese is created on GitHub. +# This workflow is automatically triggered when a release is created on GitHub. on: # Ref: . @@ -80,11 +80,11 @@ jobs: - name: Create the bundle env: - REACT_APP_ENVIRONMENT: 'PRODUCTION' - REACT_APP_FUSIONCHARTS_LICENSE_KEY: '${{ secrets.APPSMITH_FUSIONCHARTS_LICENSE_KEY }}' - REACT_APP_SEGMENT_CE_KEY: '${{ secrets.APPSMITH_SEGMENT_CE_KEY }}' - REACT_APP_VERSION_ID: '${{ needs.prelude.outputs.tag }}' - REACT_APP_INTERCOM_APP_ID: '${{ secrets.APPSMITH_INTERCOM_ID }}' + REACT_APP_ENVIRONMENT: "PRODUCTION" + REACT_APP_FUSIONCHARTS_LICENSE_KEY: "${{ secrets.APPSMITH_FUSIONCHARTS_LICENSE_KEY }}" + REACT_APP_SEGMENT_CE_KEY: "${{ secrets.APPSMITH_SEGMENT_CE_KEY }}" + REACT_APP_VERSION_ID: "${{ needs.prelude.outputs.tag }}" + REACT_APP_INTERCOM_APP_ID: "${{ secrets.APPSMITH_INTERCOM_ID }}" run: | REACT_APP_VERSION_RELEASE_DATE="$(date -u '+%Y-%m-%dT%H:%M:%SZ')" \ yarn build diff --git a/.github/workflows/external-client-test.yml b/.github/workflows/integration-tests-command.yml similarity index 99% rename from .github/workflows/external-client-test.yml rename to .github/workflows/integration-tests-command.yml index 4a4d682c58..8e2d482e13 100644 --- a/.github/workflows/external-client-test.yml +++ b/.github/workflows/integration-tests-command.yml @@ -2,8 +2,8 @@ name: Appsmith External Integration Test Workflow on: # This workflow is only triggered by the ok to test command dispatch - repository_dispatch: - types: [ok-to-test-command] + workflow_dispatch: + # types: [ok-to-test-command] jobs: server-build: diff --git a/.github/workflows/ok-to-test.yml b/.github/workflows/ok-to-test.yml index a24699b7b4..fe11d0dff2 100644 --- a/.github/workflows/ok-to-test.yml +++ b/.github/workflows/ok-to-test.yml @@ -26,7 +26,8 @@ jobs: with: token: ${{ env.TOKEN }} # GitHub App installation access token reaction-token: ${{ secrets.GITHUB_TOKEN }} + dispatch-type: workflow issue-type: pull-request - commands: ok-to-test + commands: integration-tests named-args: true permission: write diff --git a/.github/workflows/test-build-docker-image.yml b/.github/workflows/test-build-docker-image.yml index 9158023423..992c76cc1c 100644 --- a/.github/workflows/test-build-docker-image.yml +++ b/.github/workflows/test-build-docker-image.yml @@ -4,15 +4,6 @@ on: # This line enables manual triggering of this workflow. workflow_dispatch: - pull_request_review: - types: [submitted] - branches: [release, master] - paths: - - "app/client/**" - - "app/server/**" - - "app/rts/**" - - "!app/client/cypress/manual_TestSuite/**" - # trigger for pushes to release and master push: branches: [release, release-frozen, master] @@ -530,8 +521,8 @@ jobs: github.event.review.state == 'approved' && github.event.pull_request.head.repo.full_name == github.repository)) && github.ref == 'refs/heads/release') - #if: (success() && github.ref == 'refs/heads/master') || github.ref == 'refs/heads/release' - + #if: (success() && github.ref == 'refs/heads/master') || github.ref == 'refs/heads/release' + steps: # Checkout the code - name: Checkout the merged commit from PR and base branch