Skip to content

Back out manifest changes I didn't make #431

Back out manifest changes I didn't make

Back out manifest changes I didn't make #431

Workflow file for this run

---
name: validate
concurrency:
group: validate
cancel-in-progress: true
on:
push:
branches:
- "**"
- "!main"
permissions:
contents: read
jobs:
# This job detects which parts of the repo have been changed, setting future jobs up for conditional behavior.
detect-changes:
runs-on: ubuntu-latest
env:
IS_CI_AUTOMATION: "yes"
outputs:
backend-changed: ${{ steps.check.outputs.backend-changed }}
iac-changed: ${{ steps.check.outputs.iac-changed }}
frontend-changed: ${{ steps.check.outputs.frontend-changed }}
shared-changed: ${{ steps.check.outputs.shared-changed }}
addon-changed: ${{ steps.check.outputs.addon-changed }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "22"
- uses: dorny/paths-filter@v3
id: check
with:
filters: |
backend-changed:
- 'packages/send/backend/**'
iac-changed:
- 'packages/send/pulumi/**'
- '.github/workflows/validate.yml'
frontend-changed:
- 'packages/send/frontend/**'
shared-changed:
- 'packages/shared/**'
addon-changed:
- 'packages/addon/**'
# When the backend code changes, run these steps
backend-tests:
needs: detect-changes
runs-on: ubuntu-latest
env:
IS_CI_AUTOMATION: "yes"
strategy:
matrix:
node-version: ["22"]
if: needs.detect-changes.outputs.backend-changed == 'true'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
id: install-dependencies
shell: bash
run: |
npm install -g pnpm
pnpm install --filter @thunderbird/tbpro-add-on && lerna run bootstrap
cd packages/send
pnpm install --filter send-backend
- name: Backend tests
id: backend-tests
shell: bash
run: |
cd packages/send/backend
cp .env.sample .env
# Certain values here contain "/" characters, which need to be escaped so sed doesn't break
APP_KEY=$(echo '${{ secrets.TEST_B2_APPLICATION_KEY }}' | sed 's/\//\\\//g')
B2_ENDPOINT=$(echo '${{ vars.TEST_B2_ENDPOINT }}' | sed 's/\//\\\//g')
S3_ENDPOINT=$(echo '${{ secrets.TEST_S3_ENDPOINT }}' | sed 's/\//\\\//g')
sed -i "s/^TEST_B2_REGION=$/TEST_B2_REGION=${{ vars.TEST_B2_REGION }}/" .env
sed -i "s/^TEST_B2_ENDPOINT=$/TEST_B2_ENDPOINT=$B2_ENDPOINT/" .env
sed -i "s/^TEST_B2_APPLICATION_KEY=$/TEST_B2_APPLICATION_KEY=$APP_KEY/" .env
sed -i "s/^TEST_B2_BUCKET_NAME=$/TEST_B2_BUCKET_NAME=${{ vars.TEST_B2_BUCKET_NAME }}/" .env
sed -i "s/^TEST_B2_APPLICATION_KEY_ID=$/TEST_B2_APPLICATION_KEY_ID=${{ secrets.TEST_B2_APPLICATION_KEY_ID }}/" .env
sed -i "s/^TEST_S3_REGION=$/TEST_S3_REGION=${{ secrets.TEST_S3_REGION }}/" .env
sed -i "s/^TEST_S3_ENDPOINT=$/TEST_S3_ENDPOINT=$S3_ENDPOINT/" .env
sed -i "s/^TEST_S3_ACCESS_KEY=$/TEST_S3_ACCESS_KEY=${{ secrets.TEST_S3_ACCESS_KEY }}/" .env
sed -i "s/^TEST_S3_SECRET_KEY=$/TEST_S3_SECRET_KEY=${{ secrets.TEST_S3_SECRET_KEY }}/" .env
sed -i "s/^TEST_S3_BUCKET_NAME=$/TEST_S3_BUCKET_NAME=${{ secrets.TEST_S3_BUCKET_NAME }}/" .env
pnpm prisma generate
pnpm ci:validate
# When Pulumi code or configs change, run these steps
iac-lint:
needs: detect-changes
runs-on: ubuntu-latest
env:
IS_CI_AUTOMATION: "yes"
strategy:
matrix:
node-version: ["22"]
if: needs.detect-changes.outputs.iac-changed == 'true'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Ruff formatting checks
uses: chartboost/ruff-action@v1
with:
src: "./packages/send/pulumi"
args: "format --check"
- name: Other linting with Ruff
uses: chartboost/ruff-action@v1
with:
src: "./packages/send/pulumi"
# When the frontend code changes, run these steps
frontend-tests-and-lint:
needs: detect-changes
runs-on: ubuntu-latest
env:
IS_CI_AUTOMATION: "yes"
strategy:
matrix:
node-version: ["22"]
if: needs.detect-changes.outputs.frontend-changed == 'true'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
id: install-dependencies
shell: bash
run: |
npm install -g pnpm
pnpm install --filter @thunderbird/tbpro-add-on && lerna run bootstrap
pnpm install --filter tbpro-shared
pnpm install --filter send-frontend
pnpm install --filter send-backend
lerna run db:generate --scope=send-backend
- name: Create .env file so tests will work
shell: bash
run: |
cd packages/send/frontend
cat << EOF > .env
VUE_BASE_URL=https://send-stage.tb.pro
VITE_SEND_SERVER_URL=https://send-backend-stage.tb.pro
VITE_SEND_CLIENT_URL=https://send-stage.tb.pro
VITE_SENTRY_AUTH_TOKEN=${{ secrets.VITE_SENTRY_AUTH_TOKEN }}
VITE_SENTRY_DSN=${{ vars.VITE_SENTRY_DSN }}
VITE_POSTHOG_PROJECT_KEY=${{ secrets.VITE_POSTHOG_PROJECT_KEY }}
VITE_POSTHOG_HOST=${{ vars.VITE_POSTHOG_HOST }}
EOF
- name: Frontend tests and lint
id: frontend-tests-and-lint
shell: bash
run: |
lerna run ci:validate --scope=send-frontend
# When the shared package code changes, run these steps
shared-tests:
needs: detect-changes
runs-on: ubuntu-latest
env:
IS_CI_AUTOMATION: "yes"
strategy:
matrix:
node-version: ["22"]
if: needs.detect-changes.outputs.shared-changed == 'true'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
id: install-dependencies
shell: bash
run: |
npm install -g pnpm
pnpm install --filter @thunderbird/tbpro-add-on && lerna run bootstrap
pnpm install --filter tbpro-shared
pnpm install --filter send-backend
- name: Shared package tests and lint
id: shared-tests
shell: bash
run: |
lerna run test --scope=tbpro-shared
# When the addon package code changes, run these steps
addon-changes:
needs: detect-changes
runs-on: ubuntu-latest
env:
IS_CI_AUTOMATION: "yes"
strategy:
matrix:
node-version: ["22"]
if: needs.detect-changes.outputs.addon-changed == 'true'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Create .env file so tests will work
shell: bash
run: |
cd packages/addon
cat << EOF > .env
VUE_BASE_URL=https://send-stage.tb.pro
VITE_SEND_SERVER_URL=https://send-backend-stage.tb.pro
VITE_SEND_CLIENT_URL=https://send-stage.tb.pro
VITE_SENTRY_AUTH_TOKEN=${{ secrets.VITE_SENTRY_AUTH_TOKEN }}
VITE_SENTRY_DSN=${{ vars.VITE_SENTRY_DSN }}
VITE_POSTHOG_PROJECT_KEY=${{ secrets.VITE_POSTHOG_PROJECT_KEY }}
VITE_POSTHOG_HOST=${{ vars.VITE_POSTHOG_HOST }}
EOF
- name: Install dependencies
id: install-dependencies
shell: bash
run: |
npm install -g pnpm
pnpm install --filter @thunderbird/tbpro-add-on && lerna run bootstrap
# install packages that addon depends on
pnpm install --filter tbpro-shared
pnpm install --filter send-frontend
pnpm install --filter addon
- name: Shared package tests and lint
id: shared-tests
shell: bash
run: |
lerna run ci:validate --scope=addon
lerna run test --scope=addon