Skip to content

feat: Add enableLinkInPr global preference to control web UI link in PR descriptions #1018

feat: Add enableLinkInPr global preference to control web UI link in PR descriptions

feat: Add enableLinkInPr global preference to control web UI link in PR descriptions #1018

Workflow file for this run

name: Build
on:
push:
branches:
- main
workflow_dispatch:
pull_request:
env:
NODE_OPTIONS: --max-old-space-size=4096
jobs:
changes:
runs-on: ubuntu-latest
outputs:
cdk: ${{ steps.filter.outputs.cdk }}
agent_core: ${{ steps.filter.outputs.agent_core }}
slack_bolt_app: ${{ steps.filter.outputs.slack_bolt_app }}
worker: ${{ steps.filter.outputs.worker }}
webapp: ${{ steps.filter.outputs.webapp }}
github_actions: ${{ steps.filter.outputs.github_actions }}
dockerfiles: ${{ steps.filter.outputs.dockerfiles }}
steps:
- uses: actions/checkout@v4
- name: Filter changed files
uses: dorny/paths-filter@v3
id: filter
with:
filters: |
cdk:
- 'cdk/**'
agent_core:
- 'packages/agent-core/**'
- 'package.json'
- 'package-lock.json'
slack_bolt_app:
- 'packages/slack-bolt-app/**'
- 'packages/agent-core/**'
- 'package.json'
- 'package-lock.json'
worker:
- 'packages/worker/**'
- 'packages/agent-core/**'
- 'package.json'
- 'package-lock.json'
webapp:
- 'packages/webapp/**'
- 'packages/agent-core/**'
- 'package.json'
- 'package-lock.json'
github_actions:
- 'packages/github-actions/**'
- 'packages/agent-core/**'
- 'package.json'
- 'package-lock.json'
dockerfiles:
- 'docker/**'
Build-and-Test-CDK:
needs: changes
if: ${{ needs.changes.outputs.cdk == 'true' || (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'workflow_dispatch' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '22.x'
- run: |
npm ci
npm run build
npm run format:check
working-directory: ./cdk
name: Run static analyses
- run: |
npm run test
working-directory: ./cdk
name: Run snapshot test
Build-and-Test-Slack-Bolt-App:
needs: changes
if: ${{ needs.changes.outputs.slack_bolt_app == 'true' || (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'workflow_dispatch' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '22.x'
- run: |
npm ci
npm run build -w packages/agent-core
name: Install dependencies
- run: |
npm run build
npm run format:check
working-directory: ./packages/slack-bolt-app
name: Run static analyses
Build-and-Test-Worker:
needs: changes
if: ${{ needs.changes.outputs.worker == 'true' || (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'workflow_dispatch' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '22.x'
- run: |
npm ci
npm run build -w packages/agent-core
name: Install dependencies
- run: |
npm run format:check
working-directory: ./packages/worker
name: Run static analyses
- run: |
npm run test
working-directory: ./packages/worker
name: Run unit tests
- run: |
npm run build
working-directory: ./packages/worker
name: Run build
Build-and-Test-Webapp:
needs: changes
if: ${{ needs.changes.outputs.webapp == 'true' || (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'workflow_dispatch' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '22.x'
- run: |
npm ci
npm run build -w packages/agent-core
name: Install dependencies
- run: |
npm run format:check
working-directory: ./packages/webapp
name: Install dependencies and run static analysis
- run: |
cp .env.local.example .env.local
npm run build
working-directory: ./packages/webapp
name: build
Build-and-Test-AgentCore:
needs: changes
if: ${{ needs.changes.outputs.agent_core == 'true' || (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'workflow_dispatch' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '22.x'
- run: |
npm ci
npm run format:check -w packages/agent-core
name: Run static analyses
- run: |
npm run test
working-directory: ./packages/agent-core
name: Run unit tests
- run: |
npm run build
working-directory: ./packages/agent-core
name: Run build
Build-and-Test-GitHubActions:
needs: changes
if: ${{ needs.changes.outputs.github_actions == 'true' || (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'workflow_dispatch' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '22.x'
- run: |
npm ci
npm run build -w packages/agent-core
name: Install dependencies
- run: |
npm run format:check -w packages/github-actions
name: Run static analyses
- run: |
npm run build
working-directory: ./packages/github-actions
name: Run build
Build-and-Test-Dockerfiles:
needs: changes
if: ${{ needs.changes.outputs.dockerfiles == 'true' || needs.changes.outputs.slack_bolt_app == 'true' || needs.changes.outputs.agent_core == 'true' || (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'workflow_dispatch' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
docker build -f docker/slack-bolt-app.Dockerfile -t slack-bolt-app .
name: Build slack-bolt-app docker image
- run: |
docker run --entrypoint node --env TESTING_BOOTSTRAP=true --env BOT_TOKEN=dummy --env SIGNING_SECRET=dummy slack-bolt-app local.js
name: Test if the image can boot successfully
permissions:
id-token: write # This is required for requesting the JWT
contents: read # This is required for actions/checkout