Back out manifest changes I didn't make #431
This file contains hidden or 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: 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 |