forked from tsai/budibase
51 changed files with 644 additions and 215 deletions
@ -0,0 +1,57 @@ |
|||||
|
name: Budibase Release |
||||
|
|
||||
|
on: |
||||
|
workflow_dispatch: |
||||
|
|
||||
|
env: |
||||
|
POSTHOG_TOKEN: ${{ secrets.POSTHOG_TOKEN }} |
||||
|
INTERCOM_TOKEN: ${{ secrets.INTERCOM_TOKEN }} |
||||
|
POSTHOG_URL: ${{ secrets.POSTHOG_URL }} |
||||
|
SENTRY_DSN: ${{ secrets.SENTRY_DSN }} |
||||
|
|
||||
|
jobs: |
||||
|
release: |
||||
|
runs-on: ubuntu-latest |
||||
|
|
||||
|
steps: |
||||
|
- uses: actions/checkout@v2 |
||||
|
- uses: actions/setup-node@v1 |
||||
|
with: |
||||
|
node-version: 12.x |
||||
|
- run: yarn |
||||
|
- run: yarn bootstrap |
||||
|
|
||||
|
- name: Configure AWS Credentials |
||||
|
uses: aws-actions/configure-aws-credentials@v1 |
||||
|
with: |
||||
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} |
||||
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} |
||||
|
aws-region: eu-west-1 |
||||
|
|
||||
|
- name: 'Get Previous tag' |
||||
|
id: previoustag |
||||
|
uses: "WyriHaximus/github-action-get-previous-tag@v1" |
||||
|
|
||||
|
- name: Build/release Docker images (Self Host) |
||||
|
if: ${{ github.event.inputs.release_self_host == 'Y' }} |
||||
|
run: | |
||||
|
docker login -u $DOCKER_USER -p $DOCKER_PASSWORD |
||||
|
yarn build |
||||
|
yarn build:docker:production |
||||
|
env: |
||||
|
DOCKER_USER: ${{ secrets.DOCKER_USERNAME }} |
||||
|
DOCKER_PASSWORD: ${{ secrets.DOCKER_API_KEY }} |
||||
|
BUDIBASE_RELEASE_VERSION: ${{ steps.previoustag.outputs.tag }} |
||||
|
|
||||
|
- uses: azure/setup-helm@v1 |
||||
|
id: install |
||||
|
|
||||
|
# So, we need to inject the values into this |
||||
|
- run: yarn release:helm |
||||
|
|
||||
|
- name: Run chart-releaser |
||||
|
uses: helm/chart-releaser-action@v1.1.0 |
||||
|
with: |
||||
|
charts_dir: docs |
||||
|
env: |
||||
|
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" |
||||
@ -0,0 +1,41 @@ |
|||||
|
context("Add Multi-Option Datatype", () => { |
||||
|
before(() => { |
||||
|
cy.login() |
||||
|
cy.createTestApp() |
||||
|
}) |
||||
|
|
||||
|
it("should create a new table, with data", () => { |
||||
|
cy.createTable("Multi Data") |
||||
|
cy.addColumn("Multi Data", "Test Data", "Multi-select", "1\n2\n3\n4\n5") |
||||
|
cy.addRowMultiValue(["1", "2", "3", "4", "5"]) |
||||
|
}) |
||||
|
|
||||
|
it ("should add form with multi select picker, containing 5 options", () => { |
||||
|
cy.navigateToFrontend() |
||||
|
cy.wait(500) |
||||
|
// Add data provider
|
||||
|
cy.get(`[data-cy="category-Data Provider"]`).click() |
||||
|
cy.get('[data-cy="dataSource-prop-control"]').click() |
||||
|
cy.get(".dropdown").contains("Multi Data").click() |
||||
|
cy.wait(500) |
||||
|
// Add Form with schema to match table
|
||||
|
cy.addComponent("Form", "Form") |
||||
|
cy.get('[data-cy="dataSource-prop-control"').click() |
||||
|
cy.get(".dropdown").contains("Multi Data").click() |
||||
|
cy.wait(500) |
||||
|
// Add multi-select picker to form
|
||||
|
cy.addComponent("Form", "Multi-select Picker").then((componentId) => { |
||||
|
cy.get('[data-cy="field-prop-control"]').type("Test Data").type('{enter}') |
||||
|
cy.wait(1000) |
||||
|
cy.getComponent(componentId).contains("Choose some options").click() |
||||
|
// Check picker has 5 items
|
||||
|
cy.getComponent(componentId).find('li').should('have.length', 5) |
||||
|
// Select all items
|
||||
|
for (let i = 1; i < 6; i++) { |
||||
|
cy.getComponent(componentId).find('li').contains(i).click() |
||||
|
} |
||||
|
// Check items have been selected
|
||||
|
cy.getComponent(componentId).find('.spectrum-Picker-label').contains("(5)") |
||||
|
}) |
||||
|
}) |
||||
|
}) |
||||
@ -0,0 +1,35 @@ |
|||||
|
context("Add Radio Buttons", () => { |
||||
|
before(() => { |
||||
|
cy.login() |
||||
|
cy.createTestApp() |
||||
|
}) |
||||
|
|
||||
|
it("should add Radio Buttons options picker on form, add data, and confirm", () => { |
||||
|
cy.navigateToFrontend() |
||||
|
cy.addComponent("Form", "Form") |
||||
|
cy.addComponent("Form", "Options Picker").then((componentId) => { |
||||
|
// Provide field setting
|
||||
|
cy.get(`[data-cy="field-prop-control"]`).type("1") |
||||
|
// Open dropdown and select Radio buttons
|
||||
|
cy.get(`[data-cy="optionsType-prop-control"]`).click().then(() => { |
||||
|
cy.get('.spectrum-Popover').contains('Radio buttons') |
||||
|
.wait(500) |
||||
|
.click() |
||||
|
}) |
||||
|
const radioButtonsTotal = 3 |
||||
|
// Add values and confirm total
|
||||
|
addRadioButtonData(radioButtonsTotal) |
||||
|
cy.getComponent(componentId).find('[type="radio"]') |
||||
|
.should('have.length', radioButtonsTotal) |
||||
|
}) |
||||
|
}) |
||||
|
|
||||
|
const addRadioButtonData = (totalRadioButtons) => { |
||||
|
cy.get(`[data-cy="optionsSource-prop-control"]`).click().then(() => { |
||||
|
cy.get('.spectrum-Popover').contains('Custom') |
||||
|
.wait(500) |
||||
|
.click() |
||||
|
}) |
||||
|
cy.addCustomSourceOptions(totalRadioButtons) |
||||
|
} |
||||
|
}) |
||||
@ -0,0 +1,61 @@ |
|||||
|
context("Custom Theming Properties", () => { |
||||
|
before(() => { |
||||
|
cy.login() |
||||
|
cy.createTestApp() |
||||
|
cy.navigateToFrontend() |
||||
|
}) |
||||
|
|
||||
|
// Default Values
|
||||
|
// Button roundness = Large
|
||||
|
// Primary colour = Blue 600
|
||||
|
// Primary colour (hover) = Blue 500
|
||||
|
// Navigation bar background colour = Gray 100
|
||||
|
// Navigation bar text colour = Gray 800
|
||||
|
it("should reset the color property values", () => { |
||||
|
// Open Theme modal and change colours
|
||||
|
cy.get(".spectrum-ActionButton-label").contains("Theme").click() |
||||
|
cy.get(".spectrum-Picker").contains("Large").click() |
||||
|
.parents() |
||||
|
.get(".spectrum-Menu-itemLabel").contains("None").click() |
||||
|
changeThemeColors() |
||||
|
// Reset colours
|
||||
|
cy.get(".spectrum-Button-label").contains("Reset").click({force: true}) |
||||
|
// Check values have reset
|
||||
|
checkThemeColorDefaults() |
||||
|
}) |
||||
|
|
||||
|
const changeThemeColors = () => { |
||||
|
// Changes the theme colours
|
||||
|
cy.get(".spectrum-FieldLabel").contains("Primary color") |
||||
|
.parent().find(".container.svelte-z3cm5a").click() |
||||
|
.find('[title="Red 400"]').click() |
||||
|
cy.get(".spectrum-FieldLabel").contains("Primary color (hover)") |
||||
|
.parent().find(".container.svelte-z3cm5a").click() |
||||
|
.find('[title="Orange 400"]').click() |
||||
|
cy.get(".spectrum-FieldLabel").contains("Navigation bar background color") |
||||
|
.parent().find(".container.svelte-z3cm5a").click() |
||||
|
.find('[title="Yellow 400"]').click() |
||||
|
cy.get(".spectrum-FieldLabel").contains("Navigation bar text color") |
||||
|
.parent().find(".container.svelte-z3cm5a").click() |
||||
|
.find('[title="Green 400"]').click() |
||||
|
} |
||||
|
|
||||
|
const checkThemeColorDefaults = () => { |
||||
|
cy.get(".spectrum-FieldLabel").contains("Primary color") |
||||
|
.parent().find(".container.svelte-z3cm5a").click() |
||||
|
.get('[title="Blue 600"]').children().find('[aria-label="Checkmark"]') |
||||
|
cy.get(".spectrum-Dialog-grid").click() |
||||
|
cy.get(".spectrum-FieldLabel").contains("Primary color (hover)") |
||||
|
.parent().find(".container.svelte-z3cm5a").click() |
||||
|
.get('[title="Blue 500"]').children().find('[aria-label="Checkmark"]') |
||||
|
cy.get(".spectrum-Dialog-grid").click() |
||||
|
cy.get(".spectrum-FieldLabel").contains("Navigation bar background color") |
||||
|
.parent().find(".container.svelte-z3cm5a").click() |
||||
|
.get('[title="Gray 100"]').children().find('[aria-label="Checkmark"]') |
||||
|
cy.get(".spectrum-Dialog-grid").click() |
||||
|
cy.get(".spectrum-FieldLabel").contains("Navigation bar text color") |
||||
|
.parent().find(".container.svelte-z3cm5a").click() |
||||
|
.get('[title="Gray 800"]').children().find('[aria-label="Checkmark"]') |
||||
|
} |
||||
|
|
||||
|
}) |
||||
@ -0,0 +1,42 @@ |
|||||
|
<a |
||||
|
href="https://www.budibase.com/?utm_source=budibase-apps-public-screens&utm_medium=badge&utm_campaign=made-in-budibase" |
||||
|
> |
||||
|
<div> |
||||
|
<img src="https://i.imgur.com/Xhdt1YP.png" alt="Budibase" /> |
||||
|
<p>Made In Budibase</p> |
||||
|
</div> |
||||
|
</a> |
||||
|
|
||||
|
<style> |
||||
|
div { |
||||
|
position: absolute; |
||||
|
right: 20px; |
||||
|
bottom: 20px; |
||||
|
padding: 10px; |
||||
|
border-radius: 5px; |
||||
|
background: var(--spectrum-alias-background-color-primary); |
||||
|
z-index: 999999 !important; |
||||
|
visibility: visible !important; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
border: 1px solid; |
||||
|
border-color: var(--spectrum-global-color-gray-300) !important; |
||||
|
height: 45px; |
||||
|
} |
||||
|
|
||||
|
p { |
||||
|
text-decoration: none; |
||||
|
color: var(--spectrum-heading-m-text-color); |
||||
|
} |
||||
|
|
||||
|
a:visited { |
||||
|
text-decoration: none; |
||||
|
color: var(--spectrum-heading-m-text-color); |
||||
|
} |
||||
|
|
||||
|
img { |
||||
|
height: 20px; |
||||
|
margin-right: 10px; |
||||
|
} |
||||
|
</style> |
||||
Loading…
Reference in new issue