mirror of
https://github.com/vector-im/element-call.git
synced 2026-05-10 10:24:44 +00:00
* add storybook to CI only add storybook with storybook label test names another env name test TestName new default name remove label condition Update pr-deploy.yaml * rename things to check if we actually run the latests ci * cleanup things used for testing * Update deploy-to-netlify.yaml * use package instead of custom environment_name * final cleanup
116 lines
4.4 KiB
YAML
116 lines
4.4 KiB
YAML
name: Build
|
|
on:
|
|
pull_request:
|
|
types:
|
|
- synchronize
|
|
- opened
|
|
- labeled
|
|
push:
|
|
branches: [livekit, full-mesh]
|
|
jobs:
|
|
build_full_element_call:
|
|
# Use the full package vite build
|
|
uses: ./.github/workflows/build-element-call.yaml
|
|
with:
|
|
package: full
|
|
vite_app_version: ${{ github.event.release.tag_name || github.sha }}
|
|
build_mode: ${{ github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'development build') && 'development' || 'production' }}
|
|
secrets:
|
|
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
|
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
|
|
SENTRY_URL: ${{ secrets.SENTRY_URL }}
|
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
deploy_develop:
|
|
# Deploy livekit branch to call.element.dev after build completes
|
|
if: github.ref == 'refs/heads/livekit'
|
|
needs: build_full_element_call
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Deploy to call.element.dev
|
|
uses: actions/github-script@d7906e4ad0b1822421a7e6a35d5ca353c962f410 # v6
|
|
with:
|
|
github-token: ${{ secrets.DEVELOP_DEPLOYMENT_TOKEN }}
|
|
script: |
|
|
await github.rest.actions.createWorkflowDispatch({
|
|
owner: 'element-hq',
|
|
repo: 'element-call-webapp-deployments',
|
|
workflow_id: 'deploy.yml',
|
|
ref: 'main',
|
|
inputs: {
|
|
target: 'call.element.dev',
|
|
version: '${{ github.sha }}'
|
|
}
|
|
})
|
|
docker_for_develop:
|
|
# Build docker and publish docker for livekit branch after build completes
|
|
if: github.ref == 'refs/heads/livekit'
|
|
needs: build_full_element_call
|
|
permissions:
|
|
contents: write
|
|
packages: write
|
|
id-token: write
|
|
uses: ./.github/workflows/build-and-publish-docker.yaml
|
|
secrets: inherit
|
|
with:
|
|
artifact_run_id: ${{ github.run_id }}
|
|
docker_tags: |
|
|
type=sha,format=short,event=branch
|
|
type=raw,value=latest-ci
|
|
type=raw,value=latest-ci_{{date 'X' }}
|
|
build_embedded_element_call:
|
|
# Use the embedded package vite build
|
|
uses: ./.github/workflows/build-element-call.yaml
|
|
with:
|
|
package: embedded
|
|
vite_app_version: ${{ github.event.release.tag_name || github.sha }}
|
|
build_mode: ${{ github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'development build') && 'development' || 'production' }}
|
|
secrets:
|
|
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
|
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
|
|
SENTRY_URL: ${{ secrets.SENTRY_URL }}
|
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
|
|
build_sdk_element_call:
|
|
# Use the embedded package vite build
|
|
uses: ./.github/workflows/build-element-call.yaml
|
|
with:
|
|
package: sdk
|
|
vite_app_version: ${{ github.event.release.tag_name || github.sha }}
|
|
build_mode: ${{ github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'development build') && 'development' || 'production' }}
|
|
secrets:
|
|
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
|
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
|
|
SENTRY_URL: ${{ secrets.SENTRY_URL }}
|
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
|
|
build_storybook:
|
|
name: Build Storybook
|
|
if: contains(github.event.pull_request.labels.*.name, 'storybook build')
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
with:
|
|
persist-credentials: false
|
|
- name: Enable Corepack
|
|
run: corepack enable
|
|
- name: pnpm cache
|
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
|
with:
|
|
cache: "pnpm"
|
|
node-version-file: ".node-version"
|
|
- name: Install dependencies
|
|
run: "pnpm install --frozen-lockfile --ignore-pnpmfile"
|
|
- name: Build Storybook
|
|
run: pnpm run build-storybook
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
|
with:
|
|
name: build-output-storybook
|
|
path: storybook-static
|
|
# We'll only use this in a triggered job, then we're done with it
|
|
retention-days: 1
|