forked from tsai/budibase
17 changed files with 290 additions and 73 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"]') |
||||
|
} |
||||
|
|
||||
|
}) |
||||
Loading…
Reference in new issue