diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 000000000000..a7ac7cc8bc3f --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,34 @@ +pipeline { + agent { + docker { + image 'metabase/ci:java-11-lein-2.9.6-clj-1.10.3.822-04-22-2021' + args '-v /.npm:/.npm -v /.cache:/.cache -v /.yarn:/.yarn -u root:root -e MB_EDITION=ee' + } + } + environment { + HOME = "/.cache" + } + stages { + stage("print env variables") { + steps { + script { + echo sh(script: 'env|sort', returnStdout: true) + } + } + } + stage("run build") { + steps { + sh './bin/build' + } + } + } + post { + success { + archiveArtifacts artifacts: 'target/uberjar/metabase.jar' + slackSend color: 'good', channel: '#jenkins-metabasepackage', message: "*SUCCESSED* - Packaged metabase. Download jar file from Jenkins: <${env.BUILD_URL}|build ${env.BUILD_NUMBER}>" + } + failure { + slackSend color: 'danger', channel: '#jenkins-metabasepackage', message: "*FAILED* - Metabase build failed (<${env.BUILD_URL}|build ${env.BUILD_NUMBER}>) - <${env.BUILD_URL}console|click here to see the console output>" + } + } +} diff --git a/README.md b/README.md index 71e590bae491..a482ec282220 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,11 @@ +# Building metabase.jar locally + +Clone this repo, then: +```bash +docker run --rm -it -v `pwd`:/app -w /app metabase/ci:java-11-lein-2.9.6-clj-1.10.3.822-04-22-2021 ./bin/build +``` +**Note**: Get the image name from the `STAGE 1.4: main builder` section of the [Dockerfile](Dockerfile) in this repo. + # Metabase Metabase is the easy, open source way for everyone in your company to ask questions and learn from data. @@ -87,7 +95,7 @@ Metabase also allows you to hit our Query API directly from Javascript to integr # License -This repository contains the source code for both the Open Source edition of Metabase, released under the AGPL, as well as the commercial edition of Metabase Enterprise, released under the Metabase Commercial Software License. +This repository contains the source code for both the Open Source edition of Metabase, released under the AGPL, as well as the commercial edition of Metabase Enterprise, released under the Metabase Commercial Software License. See [LICENSE.txt](./LICENSE.txt) for details. diff --git a/app.json b/app.json index bfe4a4301f15..0cc870462731 100644 --- a/app.json +++ b/app.json @@ -1,5 +1,5 @@ { - "name": "Metabase", + "name": "BI Reporting", "description": "Metabase report server", "keywords": [ "business intelligence", diff --git a/frontend/src/metabase/admin/databases/components/widgets/CacheFieldValuesScheduleWidget.jsx b/frontend/src/metabase/admin/databases/components/widgets/CacheFieldValuesScheduleWidget.jsx index 00ac84c5a828..9b369f7e3ce7 100644 --- a/frontend/src/metabase/admin/databases/components/widgets/CacheFieldValuesScheduleWidget.jsx +++ b/frontend/src/metabase/admin/databases/components/widgets/CacheFieldValuesScheduleWidget.jsx @@ -52,7 +52,7 @@ export default function CacheFieldValuesScheduleWidget({ select={() => setIsFullSyncIsOnDemand(false, true)} >

- {t`When a user adds a new filter to a dashboard or a SQL question, Metabase will + {t`When a user adds a new filter to a dashboard or a SQL question, BI Reporting will scan the field(s) mapped to that filter in order to show the list of selectable values.`}

diff --git a/frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx b/frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx index 3c4b63c6512e..5bcb3d8a70ea 100644 --- a/frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx +++ b/frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx @@ -298,7 +298,7 @@ const FieldGeneralPane = ({
rescanFieldValues(field.id)} diff --git a/frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx b/frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx index 9787b266ce85..8278b2fdbbc9 100644 --- a/frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx +++ b/frontend/src/metabase/admin/datamodel/containers/TableSettingsApp.jsx @@ -82,7 +82,7 @@ class UpdateFieldValues extends Component {
{t`All users belong to the ${getGroupNameLocalized( group, )} group and can't be removed from it. Setting permissions for this group is a great way to - make sure you know what new Metabase users will be able to see.`} + make sure you know what new BI Reporting users will be able to see.`}

) : isAdminGroup(group) ? (

- {t`This is a special group whose members can see everything in the Metabase instance, and who can access and make changes to the + {t`This is a special group whose members can see everything in the BI Reporting instance, and who can access and make changes to the settings in the Admin Panel, including changing permissions! So, add people to this group with care.`}

- {t`To make sure you don't get locked out of Metabase, there always has to be at least one user in this group.`} + {t`To make sure you don't get locked out of BI Reporting, there always has to be at least one user in this group.`}

) : null; diff --git a/frontend/src/metabase/admin/permissions/selectors.js b/frontend/src/metabase/admin/permissions/selectors.js index 34ea0a42622d..130feaca93a5 100644 --- a/frontend/src/metabase/admin/permissions/selectors.js +++ b/frontend/src/metabase/admin/permissions/selectors.js @@ -65,11 +65,11 @@ const SPECIAL_GROUP_FILTERS = [ function getTooltipForGroup(group) { if (isAdminGroup(group)) { - return t`Administrators always have the highest level of access to everything in Metabase.`; + return t`Administrators always have the highest level of access to everything in BI Reporting.`; } else if (isDefaultGroup(group)) { - return t`Every Metabase user belongs to the All Users group. If you want to limit or restrict a group's access to something, make sure the All Users group has an equal or lower level of access.`; + return t`Every BI Reporting user belongs to the All Users group. If you want to limit or restrict a group's access to something, make sure the All Users group has an equal or lower level of access.`; } else if (isMetaBotGroup(group)) { - return t`MetaBot is Metabase's Slack bot. You can choose what it has access to here.`; + return t`MetaBot is BI Reporting Slack bot. You can choose what it has access to here.`; } return null; } diff --git a/frontend/src/metabase/admin/settings/components/SettingsCloudStoreLink/SettingsCloudStoreLink.jsx b/frontend/src/metabase/admin/settings/components/SettingsCloudStoreLink/SettingsCloudStoreLink.jsx index 5cc2230510c5..4034afe58bdd 100644 --- a/frontend/src/metabase/admin/settings/components/SettingsCloudStoreLink/SettingsCloudStoreLink.jsx +++ b/frontend/src/metabase/admin/settings/components/SettingsCloudStoreLink/SettingsCloudStoreLink.jsx @@ -7,7 +7,7 @@ export function SettingsCloudStoreLink() { const url = MetabaseSettings.storeUrl(); return (
- {t`Manage your Cloud account, including billing preferences and technical settings about this instance in your Metabase Store account.`} + {t`Manage your Cloud account, including billing preferences and technical settings about this instance in your Report Builder Store account.`} {t`Go to the Metabase Store`} diff --git a/frontend/src/metabase/admin/settings/components/SettingsGoogleForm.jsx b/frontend/src/metabase/admin/settings/components/SettingsGoogleForm.jsx index b805663c78ee..3149cedc6344 100644 --- a/frontend/src/metabase/admin/settings/components/SettingsGoogleForm.jsx +++ b/frontend/src/metabase/admin/settings/components/SettingsGoogleForm.jsx @@ -51,10 +51,10 @@ export default class SettingsGoogleForm extends Component { />

{t`Sign in with Google`}

- {t`Allows users with existing Metabase accounts to login with a Google account that matches their email address in addition to their Metabase username and password.`} + {t`Allows users with existing Report Builder accounts to login with a Google account that matches their email address in addition to their Report Builder username and password.`}

- {jt`To allow users to sign in with Google you'll need to give Metabase a Google Developers console application client ID. It only takes a few steps and instructions on how to create a key can be found ${( + {jt`To allow users to sign in with Google you'll need to give Report Builder a Google Developers console application client ID. It only takes a few steps and instructions on how to create a key can be found ${( (

    @@ -109,7 +107,7 @@ export default class SettingsSetupList extends Component {

    {t`Getting set up`}

    -

    {t`A few things you can do to get the most out of Metabase.`}

    +

    {t`A few things you can do to get the most out of BI Reporting.`}

    - - {!MetabaseSettings.isHosted() && !MetabaseSettings.isEnterprise() && ( - - )}
    ); } diff --git a/frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx b/frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx index 184b8b773fb9..3f6474860b05 100644 --- a/frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx +++ b/frontend/src/metabase/admin/settings/components/SettingsSlackForm.jsx @@ -236,7 +236,7 @@ export default class SettingsSlackForm extends Component {

    - {t`Metabase`} + {t`BI Reporting`} {jt`Once you're there, give it a name and click ${( "{t`Add bot integration`}" - )}. Then copy and paste the Bot API Token into the field below. Once you are done, create a "metabase_files" channel in Slack. Metabase needs this to upload graphs.`} + )}. Then copy and paste the Bot API Token into the field below. Once you are done, create a "metabase_files" channel in Slack. BI Reporting needs this to upload graphs.`}