Bird: Release E2E tests π¦ #816
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |