Merge remote-tracking branch 'origin/master' into remote-users-not-count-for-license
12
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -19,6 +19,18 @@ If this pull request addresses a Help Wanted ticket, please link the relevant Gi
|
|||||||
Otherwise, link the JIRA ticket.
|
Otherwise, link the JIRA ticket.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
#### Screenshots
|
||||||
|
<!--
|
||||||
|
If the PR includes UI changes, include screenshots/GIFs.
|
||||||
|
|
||||||
|
For an easier comparison of UI changes a table (template below) can be used.
|
||||||
|
|
||||||
|
| before | after |
|
||||||
|
|----|----|
|
||||||
|
| <insert before screenshot here> | <insert after screenshot here> |
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
#### Release Note
|
#### Release Note
|
||||||
<!--
|
<!--
|
||||||
Add a release note for each of the following conditions:
|
Add a release note for each of the following conditions:
|
||||||
|
4
.github/codeql/codeql-config.yml
vendored
@ -14,6 +14,6 @@ paths-ignore:
|
|||||||
- templates
|
- templates
|
||||||
- tests
|
- tests
|
||||||
- 'api4/*_local.go'
|
- 'api4/*_local.go'
|
||||||
- webapp/channels/e2e
|
|
||||||
- webapp/channels/tests
|
- webapp/channels/tests
|
||||||
- '**/*.test.*'
|
- '**/*.test.*'
|
||||||
|
- e2e-tests
|
||||||
|
124
.github/workflows/artifacts.yml
vendored
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
name: Artifacts generation and upload
|
||||||
|
on:
|
||||||
|
workflow_run:
|
||||||
|
workflows: ["Mattermost Build"]
|
||||||
|
types:
|
||||||
|
- completed
|
||||||
|
jobs:
|
||||||
|
upload-s3:
|
||||||
|
name: cd/Upload artifacts to S3
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
env:
|
||||||
|
REPO_NAME: ${{ github.event.repository.name }}
|
||||||
|
if: >
|
||||||
|
github.event.workflow_run.event == 'pull_request' &&
|
||||||
|
github.event.workflow_run.conclusion == 'success'
|
||||||
|
steps:
|
||||||
|
- name: cd/Configure AWS
|
||||||
|
uses: aws-actions/configure-aws-credentials@07c2f971bac433df982ccc261983ae443861db49 # v1-node16
|
||||||
|
with:
|
||||||
|
aws-region: us-east-1
|
||||||
|
aws-access-key-id: ${{ secrets.PR_BUILDS_BUCKET_AWS_ACCESS_KEY_ID }}
|
||||||
|
aws-secret-access-key: ${{ secrets.PR_BUILDS_BUCKET_AWS_SECRET_ACCESS_KEY }}
|
||||||
|
- name: cd/Download artifacts
|
||||||
|
uses: dawidd6/action-download-artifact@0c49384d39ceb023b8040f480a25596fd6cf441b # v2.26.0
|
||||||
|
with:
|
||||||
|
workflow: ${{ github.event.workflow_run.workflow_id }}
|
||||||
|
run_id: ${{ github.event.workflow_run.id }}
|
||||||
|
workflow_conclusion: success
|
||||||
|
name: server-dist-artifact
|
||||||
|
path: server/dist
|
||||||
|
# Get Branch name from calling workflow
|
||||||
|
# Search for the string "pull" and replace it with "PR" in branch-name
|
||||||
|
- name: cd/Get branch name
|
||||||
|
run: echo "BRANCH_NAME=$(echo ${{ github.event.workflow_run.head_branch }} | sed 's/^pull\//PR-/g')" >> $GITHUB_ENV
|
||||||
|
- name: cd/Upload artifacts to S3
|
||||||
|
run: |
|
||||||
|
aws s3 cp server/dist/ s3://pr-builds.mattermost.com/$REPO_NAME/$BRANCH_NAME/ --acl public-read --cache-control "no-cache" --recursive --no-progress
|
||||||
|
aws s3 cp server/dist/ s3://pr-builds.mattermost.com/$REPO_NAME/commit/${{ github.sha }}/ --acl public-read --cache-control "no-cache" --recursive --no-progress
|
||||||
|
build-docker:
|
||||||
|
name: cd/Build and push docker image
|
||||||
|
needs: upload-s3
|
||||||
|
env:
|
||||||
|
REPO_NAME: ${{ github.event.repository.name }}
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
if: >
|
||||||
|
github.event.workflow_run.event == 'pull_request' &&
|
||||||
|
github.event.workflow_run.conclusion == 'success'
|
||||||
|
steps:
|
||||||
|
- name: cd/Login to Docker Hub
|
||||||
|
uses: docker/login-action@3da7dc6e2b31f99ef2cb9fb4c50fb0971e0d0139 # v2.1.0
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_DEV_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_DEV_TOKEN }}
|
||||||
|
- name: cd/Download artifacts
|
||||||
|
uses: dawidd6/action-download-artifact@0c49384d39ceb023b8040f480a25596fd6cf441b # v2.26.0
|
||||||
|
with:
|
||||||
|
workflow: ${{ github.event.workflow_run.workflow_id }}
|
||||||
|
run_id: ${{ github.event.workflow_run.id }}
|
||||||
|
workflow_conclusion: success
|
||||||
|
name: server-build-artifact
|
||||||
|
path: server/build/
|
||||||
|
- name: cd/Setup Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@11e8a2e2910826a92412015c515187a2d6750279 # v2.4
|
||||||
|
- name: cd/Docker build and push
|
||||||
|
env:
|
||||||
|
DOCKER_CLI_EXPERIMENTAL: enabled
|
||||||
|
run: |
|
||||||
|
export TAG=$(echo "${{ github.event.pull_request.head.sha || github.sha }}" | cut -c1-7)
|
||||||
|
cd server/build
|
||||||
|
export DOCKER_CLI_EXPERIMENTAL=enabled
|
||||||
|
export MM_PACKAGE=https://pr-builds.mattermost.com/$REPO_NAME/commit/${{ github.sha }}/mattermost-team-linux-amd64.tar.gz
|
||||||
|
docker buildx build --push --build-arg MM_PACKAGE=$MM_PACKAGE -t mattermostdevelopment/mm-te-test:${TAG} .
|
||||||
|
# Temporary uploading also to mattermost/mm-te-test:${TAG} except mattermostdevelopment/mm-te-test:${TAG}
|
||||||
|
# Context: https://community.mattermost.com/private-core/pl/3jzzxzfiji8hx833ewyuthzkjh
|
||||||
|
build-docker-temp:
|
||||||
|
name: cd/Build and push docker image
|
||||||
|
needs: upload-s3
|
||||||
|
env:
|
||||||
|
REPO_NAME: ${{ github.event.repository.name }}
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
if: >
|
||||||
|
github.event.workflow_run.event == 'pull_request' &&
|
||||||
|
github.event.workflow_run.conclusion == 'success'
|
||||||
|
steps:
|
||||||
|
- name: cd/Login to Docker Hub
|
||||||
|
uses: docker/login-action@3da7dc6e2b31f99ef2cb9fb4c50fb0971e0d0139 # v2.1.0
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: cd/Download artifacts
|
||||||
|
uses: dawidd6/action-download-artifact@0c49384d39ceb023b8040f480a25596fd6cf441b # v2.26.0
|
||||||
|
with:
|
||||||
|
workflow: ${{ github.event.workflow_run.workflow_id }}
|
||||||
|
run_id: ${{ github.event.workflow_run.id }}
|
||||||
|
workflow_conclusion: success
|
||||||
|
name: server-build-artifact
|
||||||
|
path: server/build/
|
||||||
|
- name: cd/Setup Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@11e8a2e2910826a92412015c515187a2d6750279 # v2.4
|
||||||
|
- name: cd/Docker build and push
|
||||||
|
env:
|
||||||
|
DOCKER_CLI_EXPERIMENTAL: enabled
|
||||||
|
run: |
|
||||||
|
export TAG=$(echo "${{ github.event.pull_request.head.sha || github.sha }}" | cut -c1-7)
|
||||||
|
cd server/build
|
||||||
|
export DOCKER_CLI_EXPERIMENTAL=enabled
|
||||||
|
export MM_PACKAGE=https://pr-builds.mattermost.com/$REPO_NAME/commit/${{ github.sha }}/mattermost-team-linux-amd64.tar.gz
|
||||||
|
docker buildx build --push --build-arg MM_PACKAGE=$MM_PACKAGE -t mattermost/mm-te-test:${TAG} .
|
||||||
|
sentry:
|
||||||
|
name: Send build info to sentry
|
||||||
|
if: >
|
||||||
|
github.event.workflow_run.event == 'pull_request' &&
|
||||||
|
github.event.workflow_run.conclusion == 'success'
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
env:
|
||||||
|
SENTRY_AUTH_TOKEN: ${{ secrets.MM_SERVER_SENTRY_AUTH_TOKEN }}
|
||||||
|
SENTRY_ORG: ${{ secrets.MM_SERVER_SENTRY_ORG }}
|
||||||
|
SENTRY_PROJECT: ${{ secrets.MM_SERVER_SENTRY_PROJECT }}
|
||||||
|
steps:
|
||||||
|
- name: cd/Checkout mattermost-server
|
||||||
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
||||||
|
- name: cd/Create Sentry release
|
||||||
|
uses: getsentry/action-release@85e0095193a153d57c458995f99d0afd81b9e5ea # v1.3.0
|
||||||
|
|
51
.github/workflows/channels-ci.yml
vendored
@ -7,7 +7,7 @@ on:
|
|||||||
- mono-repo*
|
- mono-repo*
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: ${{ !contains( github.ref , 'heads/ref/master') }}
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -32,14 +32,14 @@ jobs:
|
|||||||
# with:
|
# with:
|
||||||
# path: |
|
# path: |
|
||||||
# '**/node_modules'
|
# '**/node_modules'
|
||||||
# 'e2e/playwright/node_modules'
|
# 'e2e-tests/playwright/node_modules'
|
||||||
# 'e2e/cypress/node_modules'
|
# 'e2e-tests/cypress/node_modules'
|
||||||
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e/cypress/package-lock.json') }}-${{ hashFiles('e2e/playwright/package-lock.json') }}
|
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e-tests/cypress/package-lock.json') }}-${{ hashFiles('e2e-tests/playwright/package-lock.json') }}
|
||||||
- name: ci/get-node-modules
|
- name: ci/get-node-modules
|
||||||
# if: steps.npm-cache.outputs.cache-hit != 'true'
|
# if: steps.npm-cache.outputs.cache-hit != 'true'
|
||||||
run: |
|
run: |
|
||||||
make node_modules
|
make node_modules
|
||||||
# make channels/e2e/playwright/node_modules
|
# make channels/e2e-tests/playwright/node_modules
|
||||||
- name: ci/lint
|
- name: ci/lint
|
||||||
run: |
|
run: |
|
||||||
npm run check
|
npm run check
|
||||||
@ -63,14 +63,14 @@ jobs:
|
|||||||
# with:
|
# with:
|
||||||
# path: |
|
# path: |
|
||||||
# '**/node_modules'
|
# '**/node_modules'
|
||||||
# 'e2e/playwright/node_modules'
|
# 'e2e-tests/playwright/node_modules'
|
||||||
# 'e2e/cypress/node_modules'
|
# 'e2e-tests/cypress/node_modules'
|
||||||
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e/cypress/package-lock.json') }}-${{ hashFiles('e2e/playwright/package-lock.json') }}
|
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e-tests/cypress/package-lock.json') }}-${{ hashFiles('e2e-tests/playwright/package-lock.json') }}
|
||||||
- name: ci/get-node-modules
|
- name: ci/get-node-modules
|
||||||
# if: steps.npm-cache.outputs.cache-hit != 'true'
|
# if: steps.npm-cache.outputs.cache-hit != 'true'
|
||||||
run: |
|
run: |
|
||||||
make node_modules
|
make node_modules
|
||||||
# make channels/e2e/playwright/node_modules
|
# make channels/e2e-tests/playwright/node_modules
|
||||||
- name: ci/lint
|
- name: ci/lint
|
||||||
working-directory: webapp/channels
|
working-directory: webapp/channels
|
||||||
run: |
|
run: |
|
||||||
@ -103,14 +103,14 @@ jobs:
|
|||||||
# with:
|
# with:
|
||||||
# path: |
|
# path: |
|
||||||
# '**/node_modules'
|
# '**/node_modules'
|
||||||
# 'e2e/playwright/node_modules'
|
# 'e2e-tests/playwright/node_modules'
|
||||||
# 'e2e/cypress/node_modules'
|
# 'e2e-tests/cypress/node_modules'
|
||||||
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e/cypress/package-lock.json') }}-${{ hashFiles('e2e/playwright/package-lock.json') }}
|
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e-tests/cypress/package-lock.json') }}-${{ hashFiles('e2e-tests/playwright/package-lock.json') }}
|
||||||
- name: ci/get-node-modules
|
- name: ci/get-node-modules
|
||||||
# if: steps.npm-cache.outputs.cache-hit != 'true'
|
# if: steps.npm-cache.outputs.cache-hit != 'true'
|
||||||
run: |
|
run: |
|
||||||
make node_modules
|
make node_modules
|
||||||
# make channels/e2e/playwright/node_modules
|
# make channels/e2e-tests/playwright/node_modules
|
||||||
- name: ci/lint
|
- name: ci/lint
|
||||||
run: |
|
run: |
|
||||||
npm run check-types
|
npm run check-types
|
||||||
@ -138,29 +138,22 @@ jobs:
|
|||||||
# with:
|
# with:
|
||||||
# path: |
|
# path: |
|
||||||
# '**/node_modules'
|
# '**/node_modules'
|
||||||
# 'e2e/playwright/node_modules'
|
# 'e2e-tests/playwright/node_modules'
|
||||||
# 'e2e/cypress/node_modules'
|
# 'e2e-tests/cypress/node_modules'
|
||||||
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e/cypress/package-lock.json') }}-${{ hashFiles('e2e/playwright/package-lock.json') }}
|
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e-tests/cypress/package-lock.json') }}-${{ hashFiles('e2e-tests/playwright/package-lock.json') }}
|
||||||
- name: ci/get-node-modules
|
- name: ci/get-node-modules
|
||||||
# if: steps.npm-cache.outputs.cache-hit != 'true'
|
# if: steps.npm-cache.outputs.cache-hit != 'true'
|
||||||
run: |
|
run: |
|
||||||
make node_modules
|
make node_modules
|
||||||
# make channels/e2e/playwright/node_modules
|
# make channels/e2e-tests/playwright/node_modules
|
||||||
- name: ci/test
|
- name: ci/test
|
||||||
env:
|
env:
|
||||||
NODE_OPTIONS: --max_old_space_size=5120
|
NODE_OPTIONS: --max_old_space_size=5120
|
||||||
run: |
|
run: |
|
||||||
# npm run test-ci --workspace=boards
|
npm run test-ci --workspace=boards
|
||||||
npm run test-ci --workspace=channels
|
npm run test-ci --workspace=channels
|
||||||
npm run test-ci --workspace=platform/client
|
npm run test-ci --workspace=platform/client
|
||||||
npm run test-ci --workspace=playbooks
|
npm run test-ci --workspace=playbooks
|
||||||
- name: ci/publish-test-results
|
|
||||||
uses: EnricoMi/publish-unit-test-result-action@a3caf02865c0604ad3dc1ecfcc5cdec9c41b7936 # v2.3.0
|
|
||||||
if: always()
|
|
||||||
with:
|
|
||||||
junit_files: "webapp/channels/build/**/*.xml"
|
|
||||||
comment_mode: always
|
|
||||||
compare_to_earlier_commit: false
|
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
defaults:
|
defaults:
|
||||||
@ -181,14 +174,14 @@ jobs:
|
|||||||
# with:
|
# with:
|
||||||
# path: |
|
# path: |
|
||||||
# '**/node_modules'
|
# '**/node_modules'
|
||||||
# 'e2e/playwright/node_modules'
|
# 'e2e-tests/playwright/node_modules'
|
||||||
# 'e2e/cypress/node_modules'
|
# 'e2e-tests/cypress/node_modules'
|
||||||
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e/cypress/package-lock.json') }}-${{ hashFiles('e2e/playwright/package-lock.json') }}
|
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('e2e-tests/cypress/package-lock.json') }}-${{ hashFiles('e2e-tests/playwright/package-lock.json') }}
|
||||||
- name: ci/get-node-modules
|
- name: ci/get-node-modules
|
||||||
# if: steps.npm-cache.outputs.cache-hit != 'true'
|
# if: steps.npm-cache.outputs.cache-hit != 'true'
|
||||||
run: |
|
run: |
|
||||||
make node_modules
|
make node_modules
|
||||||
# make channels/e2e/playwright/node_modules
|
# make channels/e2e-tests/playwright/node_modules
|
||||||
- name: ci/build
|
- name: ci/build
|
||||||
run: |
|
run: |
|
||||||
npm run build
|
npm run build
|
||||||
|
79
.github/workflows/ci.yml
vendored
@ -1,4 +1,4 @@
|
|||||||
name: mattermost-build
|
name: Mattermost Build
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
push:
|
push:
|
||||||
@ -11,7 +11,7 @@ env:
|
|||||||
go-version: "1.19.5"
|
go-version: "1.19.5"
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: ${{ !contains( github.ref , 'heads/ref/master') }}
|
||||||
jobs:
|
jobs:
|
||||||
check-mocks:
|
check-mocks:
|
||||||
name: Check mocks
|
name: Check mocks
|
||||||
@ -232,77 +232,4 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
name: server-build-artifact
|
name: server-build-artifact
|
||||||
path: server/build/
|
path: server/build/
|
||||||
retention-days: 14
|
retention-days: 14
|
||||||
upload-s3:
|
|
||||||
name: Upload to S3 bucket
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
needs: build-mattermost-server
|
|
||||||
env:
|
|
||||||
REPO_NAME: ${{ github.event.repository.name }}
|
|
||||||
steps:
|
|
||||||
- name: Download dist artifacts
|
|
||||||
uses: actions/download-artifact@e9ef242655d12993efdcda9058dee2db83a2cb9b # v3.0.2
|
|
||||||
with:
|
|
||||||
name: server-dist-artifact
|
|
||||||
path: server/dist/
|
|
||||||
- name: Configure AWS
|
|
||||||
uses: aws-actions/configure-aws-credentials@07c2f971bac433df982ccc261983ae443861db49 # v1-node16
|
|
||||||
with:
|
|
||||||
aws-region: us-east-1
|
|
||||||
aws-access-key-id: ${{ secrets.MM_SERVER_AWS_ACCESS_KEY_ID }}
|
|
||||||
aws-secret-access-key: ${{ secrets.MM_SERVER_AWS_SECRET_ACCESS_KEY }}
|
|
||||||
# We need to sanitize the branch name before using it
|
|
||||||
- name: ci/sanitize-branch-name
|
|
||||||
id: branch
|
|
||||||
uses: transferwise/sanitize-branch-name@b10b4d524ac5a7b645b43a3527db3a6cca017b9d # v1
|
|
||||||
# Search for the string "pull" and replace it with "PR" in branch-name
|
|
||||||
- name: ci/sanitize-branch-name-replace-pull-with-PR-
|
|
||||||
run: echo "BRANCH_NAME=$(echo ${{ steps.branch.outputs.sanitized-branch-name }} | sed 's/^pull\//PR-/g')" >> $GITHUB_ENV
|
|
||||||
- name: ci/artifact-upload
|
|
||||||
run: |
|
|
||||||
aws s3 cp server/dist/ s3://pr-builds.mattermost.com/$REPO_NAME/$BRANCH_NAME/ --acl public-read --cache-control "no-cache" --recursive
|
|
||||||
aws s3 cp server/dist/ s3://pr-builds.mattermost.com/$REPO_NAME/commit/${{ github.sha }}/ --acl public-read --cache-control "no-cache" --recursive
|
|
||||||
build-docker:
|
|
||||||
name: Build docker image
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
needs: upload-s3
|
|
||||||
steps:
|
|
||||||
- name: Download build artifacts
|
|
||||||
uses: actions/download-artifact@e9ef242655d12993efdcda9058dee2db83a2cb9b # v3.0.2
|
|
||||||
with:
|
|
||||||
name: server-build-artifact
|
|
||||||
path: server/build/
|
|
||||||
- name: Login to Docker Hub
|
|
||||||
uses: docker/login-action@3da7dc6e2b31f99ef2cb9fb4c50fb0971e0d0139 # v2.1.0
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
||||||
- name: Setup Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@11e8a2e2910826a92412015c515187a2d6750279 # v2.4
|
|
||||||
- name: Docker build and push
|
|
||||||
env:
|
|
||||||
DOCKER_CLI_EXPERIMENTAL: enabled
|
|
||||||
run: |
|
|
||||||
export TAG=$(echo "${{ github.event.pull_request.head.sha || github.sha }}" | cut -c1-7)
|
|
||||||
cd server/build
|
|
||||||
export DOCKER_CLI_EXPERIMENTAL=enabled
|
|
||||||
export MM_PACKAGE=https://pr-builds.mattermost.com/mattermost-server/commit/${GITHUB_SHA}/mattermost-team-linux-amd64.tar.gz
|
|
||||||
docker buildx build --push --build-arg MM_PACKAGE=$MM_PACKAGE -t mattermost/mm-te-test:${TAG} .
|
|
||||||
sentry:
|
|
||||||
name: Send build info to sentry
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
needs:
|
|
||||||
- test-postgres-binary
|
|
||||||
- test-postgres-normal
|
|
||||||
- test-mysql
|
|
||||||
- build-mattermost-server
|
|
||||||
if: ${{ github.event_name == 'push' }}
|
|
||||||
env:
|
|
||||||
SENTRY_AUTH_TOKEN: ${{ secrets.MM_SERVER_SENTRY_AUTH_TOKEN }}
|
|
||||||
SENTRY_ORG: ${{ secrets.MM_SERVER_SENTRY_ORG }}
|
|
||||||
SENTRY_PROJECT: ${{ secrets.MM_SERVER_SENTRY_PROJECT }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout mattermost-server
|
|
||||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
|
||||||
- name: Create Sentry release
|
|
||||||
uses: getsentry/action-release@85e0095193a153d57c458995f99d0afd81b9e5ea # v1.3.0
|
|
||||||
|
26
.github/workflows/codeql-analysis.yml
vendored
@ -2,7 +2,7 @@ name: "CodeQL"
|
|||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: ${{ !contains( github.ref , 'heads/ref/master') }}
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
@ -10,7 +10,7 @@ on:
|
|||||||
branches: [ master ]
|
branches: [ master ]
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '30 5,17 * * *'
|
- cron: '30 5,17 * * *'
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
language: [ 'go' ]
|
language: [ 'go', 'javascript' ]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
@ -36,14 +36,26 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
languages: ${{ matrix.language }}
|
languages: ${{ matrix.language }}
|
||||||
debug: false
|
debug: false
|
||||||
config-file: ./.github/codeql/codeql-config.yml
|
config-file: ./.github/codeql/codeql-config.yml
|
||||||
|
|
||||||
- name: Build
|
- name: Build JavaScript
|
||||||
|
uses: github/codeql-action/autobuild@v2
|
||||||
|
if: ${{ matrix.language == 'javascript' }}
|
||||||
|
|
||||||
|
- name: Setup go
|
||||||
|
uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: '1.20'
|
||||||
|
if: ${{ matrix.language == 'go' }}
|
||||||
|
|
||||||
|
|
||||||
|
- name: Build Golang
|
||||||
run: |
|
run: |
|
||||||
cd server
|
cd server
|
||||||
make setup-go-work
|
make setup-go-work
|
||||||
make build-linux-amd64
|
make build-linux-amd64
|
||||||
|
if: ${{ matrix.language == 'go' }}
|
||||||
|
|
||||||
# Perform Analysis
|
# Perform Analysis
|
||||||
- name: Perform CodeQL Analysis
|
- name: Perform CodeQL Analysis
|
||||||
uses: github/codeql-action/analyze@v2
|
uses: github/codeql-action/analyze@v2
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
name: mattermost-e2e
|
name: mattermost-e2e-tests
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
push:
|
push:
|
||||||
@ -7,7 +7,7 @@ on:
|
|||||||
- mono-repo*
|
- mono-repo*
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: ${{ !contains( github.ref , 'heads/ref/master') }}
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
shell: bash
|
shell: bash
|
||||||
@ -16,7 +16,7 @@ jobs:
|
|||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: e2e/cypress
|
working-directory: e2e-tests/cypress
|
||||||
steps:
|
steps:
|
||||||
- name: ci/checkout-repo
|
- name: ci/checkout-repo
|
||||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
||||||
@ -26,7 +26,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
node-version-file: ".nvmrc"
|
node-version-file: ".nvmrc"
|
||||||
cache: npm
|
cache: npm
|
||||||
cache-dependency-path: 'e2e/cypress/package-lock.json'
|
cache-dependency-path: 'e2e-tests/cypress/package-lock.json'
|
||||||
- name: ci/cypress/npm-install
|
- name: ci/cypress/npm-install
|
||||||
run: |
|
run: |
|
||||||
npm ci
|
npm ci
|
||||||
@ -37,7 +37,7 @@ jobs:
|
|||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: e2e/playwright
|
working-directory: e2e-tests/playwright
|
||||||
steps:
|
steps:
|
||||||
- name: ci/checkout-repo
|
- name: ci/checkout-repo
|
||||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
||||||
@ -47,7 +47,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
node-version-file: ".nvmrc"
|
node-version-file: ".nvmrc"
|
||||||
cache: npm
|
cache: npm
|
||||||
cache-dependency-path: 'e2e/playwright/package-lock.json'
|
cache-dependency-path: 'e2e-tests/playwright/package-lock.json'
|
||||||
- name: ci/get-webapp-node-modules
|
- name: ci/get-webapp-node-modules
|
||||||
working-directory: webapp
|
working-directory: webapp
|
||||||
# requires build of client and types
|
# requires build of client and types
|
4
.github/workflows/scorecards-analysis.yml
vendored
@ -5,6 +5,10 @@ on:
|
|||||||
schedule:
|
schedule:
|
||||||
- cron: '44 6 * * *'
|
- cron: '44 6 * * *'
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: ${{ !contains( github.ref , 'heads/ref/master') }}
|
||||||
|
|
||||||
# Declare default permissions as read only.
|
# Declare default permissions as read only.
|
||||||
permissions: read-all
|
permissions: read-all
|
||||||
|
|
||||||
|
35
.gitignore
vendored
@ -23,25 +23,25 @@ config/logging.json
|
|||||||
/plugins
|
/plugins
|
||||||
|
|
||||||
# disable folders generated by Cypress
|
# disable folders generated by Cypress
|
||||||
e2e/cypress/node_modules
|
e2e-tests/cypress/node_modules
|
||||||
e2e/cypress/tests/downloads
|
e2e-tests/cypress/tests/downloads
|
||||||
e2e/cypress/tests/screenshots
|
e2e-tests/cypress/tests/screenshots
|
||||||
e2e/cypress/tests/videos
|
e2e-tests/cypress/tests/videos
|
||||||
e2e/cypress/tests/integration/benchmark/__benchmarks__
|
e2e-tests/cypress/tests/integration/benchmark/__benchmarks__
|
||||||
e2e/cypress/tests/integration/performance/logs
|
e2e-tests/cypress/tests/integration/performance/logs
|
||||||
e2e/cypress/tests/fixtures/ldap_tmp
|
e2e-tests/cypress/tests/fixtures/ldap_tmp
|
||||||
e2e/cypress/tests/fixtures/mmctl
|
e2e-tests/cypress/tests/fixtures/mmctl
|
||||||
e2e/cypress/results
|
e2e-tests/cypress/results
|
||||||
e2e/cypress/.eslintcache
|
e2e-tests/cypress/.eslintcache
|
||||||
|
|
||||||
# disable files/folders generated by Playwright
|
# disable files/folders generated by Playwright
|
||||||
e2e/playwright/node_modules
|
e2e-tests/playwright/node_modules
|
||||||
e2e/playwright/playwright-report
|
e2e-tests/playwright/playwright-report
|
||||||
e2e/playwright/storage_state
|
e2e-tests/playwright/storage_state
|
||||||
e2e/playwright/test-results
|
e2e-tests/playwright/test-results
|
||||||
e2e/playwright/tests/**/*-darwin.png
|
e2e-tests/playwright/tests/**/*-darwin.png
|
||||||
e2e/playwright/tests/**/*-window.png
|
e2e-tests/playwright/tests/**/*-window.png
|
||||||
e2e/playwright/.eslintcache
|
e2e-tests/playwright/.eslintcache
|
||||||
|
|
||||||
# Enterprise & products imports files
|
# Enterprise & products imports files
|
||||||
imports/imports.go
|
imports/imports.go
|
||||||
@ -134,6 +134,7 @@ cprofile.out
|
|||||||
*.test
|
*.test
|
||||||
webapp/coverage
|
webapp/coverage
|
||||||
/report.xml
|
/report.xml
|
||||||
|
junit.xml
|
||||||
|
|
||||||
.agignore
|
.agignore
|
||||||
.ctags
|
.ctags
|
||||||
|
@ -7,7 +7,7 @@ stages:
|
|||||||
|
|
||||||
include:
|
include:
|
||||||
- project: mattermost/ci/mattermost-server
|
- project: mattermost/ci/mattermost-server
|
||||||
ref: monorepo-testing
|
ref: master
|
||||||
file: private.yml
|
file: private.yml
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
|
@ -1 +1,7 @@
|
|||||||
/plugin/ @mattermost/toolkit
|
/.github/workflows/channels-ci.yml @mattermost/web-platform
|
||||||
|
/webapp/package.json @mattermost/web-platform
|
||||||
|
/webapp/channels/package.json @mattermost/web-platform
|
||||||
|
/webapp/Makefile @mattermost/web-platform
|
||||||
|
/webapp/package-lock.json @mattermost/web-platform
|
||||||
|
/webapp/platform/*/package.json @mattermost/web-platform
|
||||||
|
/webapp/scripts @mattermost/web-platform
|
||||||
|
@ -11,8 +11,8 @@ You may be licensed to use source code to create compiled versions not produced
|
|||||||
1. Under the Free Software Foundation’s GNU AGPL v.3.0, subject to the exceptions outlined in this policy; or
|
1. Under the Free Software Foundation’s GNU AGPL v.3.0, subject to the exceptions outlined in this policy; or
|
||||||
2. Under a commercial license available from Mattermost, Inc. by contacting commercial@mattermost.com
|
2. Under a commercial license available from Mattermost, Inc. by contacting commercial@mattermost.com
|
||||||
|
|
||||||
You are licensed to use the source code in Admin Tools and Configuration Files (templates/, config/default.json, i18n/, model/,
|
You are licensed to use the source code in Admin Tools and Configuration Files (server/templates/, server/i18n/, model/,
|
||||||
plugin/ and all subdirectories thereof) under the Apache License v2.0.
|
plugin/, server/boards/, server/playbooks/, webapp/ and all subdirectories thereof) under the Apache License v2.0.
|
||||||
|
|
||||||
We promise that we will not enforce the copyleft provisions in AGPL v3.0 against you if your application (a) does not
|
We promise that we will not enforce the copyleft provisions in AGPL v3.0 against you if your application (a) does not
|
||||||
link to the Mattermost Platform directly, but exclusively uses the Mattermost Admin Tools and Configuration Files, and
|
link to the Mattermost Platform directly, but exclusively uses the Mattermost Admin Tools and Configuration Files, and
|
||||||
|
0
e2e/.gitignore → e2e-tests/.gitignore
vendored
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 341 KiB After Width: | Height: | Size: 341 KiB |
Before Width: | Height: | Size: 769 KiB After Width: | Height: | Size: 769 KiB |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 356 B After Width: | Height: | Size: 356 B |
Before Width: | Height: | Size: 559 B After Width: | Height: | Size: 559 B |
Before Width: | Height: | Size: 382 B After Width: | Height: | Size: 382 B |
Before Width: | Height: | Size: 514 B After Width: | Height: | Size: 514 B |
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 470 KiB After Width: | Height: | Size: 470 KiB |
Before Width: | Height: | Size: 611 KiB After Width: | Height: | Size: 611 KiB |
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 956 B After Width: | Height: | Size: 956 B |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB |