150 lines
4.3 KiB
YAML
150 lines
4.3 KiB
YAML
name: Run Autumn Tests
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- test/cicd
|
|
|
|
env:
|
|
DATABASE_URL: ${{ secrets.SUPABASE_URL }}
|
|
UNIT_TEST_AUTUMN_SECRET_KEY: ${{ secrets.AUTUMN_KEY }}
|
|
REDIS_URL: redis://localhost:6379
|
|
ENCRYPTION_IV: ${{ secrets.ENCRYPTION_IV }}
|
|
ENCRYPTION_PASSWORD: ${{ secrets.ENCRYPTION_PASSWORD }}
|
|
TESTS_ORG: ${{ secrets.TESTS_ORG }}
|
|
TESTS_ORG_ID: ${{ secrets.TESTS_ORG_ID }}
|
|
LOCALTUNNEL_RESERVED_KEY: ${{ secrets.LOCALTUNNEL_RESERVED_KEY }}
|
|
STRIPE_WEBHOOK_URL: ${{ secrets.STRIPE_WEBHOOK_URL }}
|
|
BETTER_AUTH_SECRET: ${{ secrets.BETTER_AUTH_SECRET }}
|
|
BROWSERBASE_API_KEY: ${{ secrets.BROWSERBASE_API_KEY }}
|
|
BROWSERBASE_PROJECT_ID: ${{ secrets.BROWSERBASE_PROJECT_ID }}
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: blacksmith-4vcpu-ubuntu-2404
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4.2.2
|
|
|
|
- name: Set up pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: 10
|
|
|
|
- name: Set up Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '22'
|
|
cache: 'pnpm'
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install --no-frozen-lockfile
|
|
|
|
- name: Setup CI
|
|
run: pnpm run setupci
|
|
|
|
# - name: Install Chrome Dependencies
|
|
# run: |
|
|
# sudo apt-get update
|
|
# sudo apt-get install -y \
|
|
# ca-certificates \
|
|
# fonts-liberation \
|
|
# libasound2 \
|
|
# libatk-bridge2.0-0 \
|
|
# libatk1.0-0 \
|
|
# libc6 \
|
|
# libcairo2 \
|
|
# libcups2 \
|
|
# libdbus-1-3 \
|
|
# libexpat1 \
|
|
# libfontconfig1 \
|
|
# libgbm1 \
|
|
# libgcc1 \
|
|
# libgdk-pixbuf2.0-0 \
|
|
# libglib2.0-0 \
|
|
# libgtk-3-0 \
|
|
# libnspr4 \
|
|
# libnss3 \
|
|
# libpango-1.0-0 \
|
|
# libpangocairo-1.0-0 \
|
|
# libstdc++6 \
|
|
# libx11-6 \
|
|
# libx11-xcb1 \
|
|
# libxcb1 \
|
|
# libxcomposite1 \
|
|
# libxcursor1 \
|
|
# libxdamage1 \
|
|
# libxext6 \
|
|
# libxfixes3 \
|
|
# libxi6 \
|
|
# libxrandr2 \
|
|
# libxrender1 \
|
|
# libxss1 \
|
|
# libxtst6 \
|
|
# lsb-release \
|
|
# wget \
|
|
# xdg-utils
|
|
|
|
# - name: Install Chrome
|
|
# run: |
|
|
# cd server/
|
|
# npx puppeteer browsers install chrome
|
|
|
|
- name: Create .env file
|
|
run: |
|
|
echo "Creating .env file..."
|
|
echo "DATABASE_URL=${{ env.DATABASE_URL }}" >> .env
|
|
echo "UNIT_TEST_AUTUMN_SECRET_KEY=${{ env.UNIT_TEST_AUTUMN_SECRET_KEY }}" >> .env
|
|
echo "REDIS_URL=${{ env.REDIS_URL }}" >> .env
|
|
echo "ENCRYPTION_IV=${{ env.ENCRYPTION_IV }}" >> .env
|
|
echo "ENCRYPTION_PASSWORD=${{ env.ENCRYPTION_PASSWORD }}" >> .env
|
|
echo "TESTS_ORG=${{ env.TESTS_ORG }}" >> .env
|
|
echo "TESTS_ORG_ID=${{ env.TESTS_ORG_ID }}" >> .env
|
|
echo "LOCALTUNNEL_RESERVED_KEY=${{ env.LOCALTUNNEL_RESERVED_KEY }}" >> .env
|
|
echo "BETTER_AUTH_SECRET=${{ env.BETTER_AUTH_SECRET }}" >> .env
|
|
echo "STRIPE_WEBHOOK_URL=${{ env.STRIPE_WEBHOOK_URL }}" >> .env
|
|
echo "HYPERBROWSER_API_KEY=${{ env.HYPERBROWSER_API_KEY }}" >> .env
|
|
cat .env
|
|
|
|
- name: Build shared
|
|
run: |
|
|
cd shared
|
|
pnpm build
|
|
|
|
- name: Startup server
|
|
run: sudo docker compose -f docker-compose.ci.yml up --detach
|
|
|
|
- name: Wait for server to be ready
|
|
run: |
|
|
echo "Waiting for server to start..."
|
|
timeout 120s bash -c 'until curl -s --fail http://localhost:8080; do echo "Waiting..."; sleep 2; done'
|
|
echo "Server is up!"
|
|
|
|
- name: Ping Local Tunnel
|
|
run: |
|
|
echo "Pinging Local Tunnel..."
|
|
curl https://askjdnaslkjdalkjen.loca.lt
|
|
echo "Local Tunnel pinged!"
|
|
|
|
- name: Run G1 tests
|
|
run: |
|
|
cd server/
|
|
chmod +x ./shell/g1.sh
|
|
./shell/g1.sh
|
|
|
|
- name: Message
|
|
run:
|
|
echo "We're all setup!"
|
|
|
|
# - name: Check logs
|
|
# if: always()
|
|
# run: sudo docker compose -f docker-compose.unix.yml logs server
|
|
|
|
- name: Close Docker Containers
|
|
if: always()
|
|
run: sudo docker compose -f docker-compose.unix.yml down
|
|
|
|
|
|
|