Skip to content

Bird: Release E2E tests πŸ“¦ #816

Bird: Release E2E tests πŸ“¦

Bird: Release E2E tests πŸ“¦ #816

Workflow file for this run

name: 'Bird: Release E2E tests πŸ“¦'
on:
workflow_dispatch:
inputs:
version:
description: 'Version'
required: true
default: 'latest'
workflow_run:
workflows: [ "Release" ]
types:
- completed
push:
paths:
- '.github/workflows/birdbox.yml'
branches:
- 'master'
# touch to trigger
jobs:
cli:
runs-on: ubuntu-20.04
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, ubuntu-18.04, macos-11, windows-2019]
node-version: [16.x]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Disable rustup update (issue workaround for Windows)
run: rustup set auto-self-update disable
if: contains(runner.os, 'windows')
shell: bash
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: nightly-2022-06-22
override: true
components: rustfmt
- name: Install Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Restore lerna
uses: actions/cache@v3
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: |
~/.npm
node_modules
rust/cubestore/node_modules
packages/*/node_modules
key: ${{ runner.os }}-workspace-main-16.x-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-workspace-main-16.x-
- name: Set Yarn version
run: yarn policies set-version v1.22.19
- name: Yarn install
uses: nick-invision/retry@v2
env:
CUBESTORE_SKIP_POST_INSTALL: true
with:
max_attempts: 3
retry_on: error
retry_wait_seconds: 15
timeout_minutes: 20
command: yarn install --frozen-lockfile
- name: Build client
run: yarn build
- name: Lerna tsc
run: yarn tsc
- name: Birdbox
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
run: |
cd packages/cubejs-testing/
npx cubejs-cli@${{ github.event.inputs.version }} create birdbox-test-project -d postgres
export BIRDBOX_CUBEJS_VERSION=${{ github.event.inputs.version }}${{ matrix.node-arch }}
yarn run dataset:minimal
yarn run birdbox:cli:postgresql
- name: Slack Failure
if: failure()
uses: voxmedia/github-action-slack-notify-build@v1
with:
channel: oss-ci
status: FAILED
color: danger
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
docker:
runs-on: ubuntu-20.04
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
target: ['postgresql', 'postgresql-cubestore', 'postgresql-pre-aggregations']
arch: ['', '-alpine']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: nightly-2022-06-22
override: true
components: rustfmt
- name: Install Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: 16.x
- name: Restore lerna
uses: actions/cache@v3
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: |
~/.npm
node_modules
rust/cubestore/node_modules
packages/*/node_modules
key: ${{ runner.os }}-workspace-main-16.x-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-workspace-main-16.x-
- name: Set Yarn version
run: yarn policies set-version v1.22.19
- name: Yarn install
uses: nick-invision/retry@v2
env:
CUBESTORE_SKIP_POST_INSTALL: true
with:
max_attempts: 3
retry_on: error
retry_wait_seconds: 15
timeout_minutes: 20
command: yarn install --frozen-lockfile
- name: Build client
run: yarn build
- name: Lerna tsc
run: yarn tsc
- name: Birdbox
run: |
cd packages/cubejs-testing/
export DEBUG=testcontainers
export BIRDBOX_CUBEJS_VERSION=${{ github.event.inputs.version }}${{ matrix.node-arch }}
yarn run dataset:minimal
yarn run birdbox:${{ matrix.target }}
- name: Slack Failure
if: failure()
uses: voxmedia/github-action-slack-notify-build@v1
with:
channel: oss-ci
status: FAILED
color: danger
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
cypress:
runs-on: ${{ matrix.os }}
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
browser: [chrome]
include:
- browser: chrome
os: ubuntu-20.04
container: cypress/browsers:node12.18.3-chrome89-ff86
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: nightly-2022-06-22
override: true
components: rustfmt
- name: Install Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: 16.x
- name: Restore lerna
uses: actions/cache@v3
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: |
~/.npm
node_modules
rust/cubestore/node_modules
packages/*/node_modules
key: ${{ runner.os }}-workspace-main-16.x-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-workspace-main-16.x-
- name: Set Yarn version
run: yarn policies set-version v1.22.19
- name: Yarn install
uses: nick-invision/retry@v2
env:
CUBESTORE_SKIP_POST_INSTALL: true
with:
max_attempts: 3
retry_on: error
retry_wait_seconds: 15
timeout_minutes: 20
command: yarn install --frozen-lockfile
- name: Lerna tsc
run: yarn tsc
- name: Birdbox
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
run: |
cd packages/cubejs-testing/
export DEBUG=testcontainers
export BIRDBOX_CYPRESS_BROWSER=${{ matrix.browser }}
export BIRDBOX_CUBEJS_VERSION=${{ github.event.inputs.version }}
yarn run cypress:install
yarn run dataset:minimal
yarn run cypress:birdbox
- name: Slack Failure
if: failure()
uses: voxmedia/github-action-slack-notify-build@v1
with:
channel: oss-ci
status: FAILED
color: danger
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}