Skip to content

readme

readme #48

Workflow file for this run

name: Fetch Contribution Data 🛠️
on:
push:
branches: [main]
workflow_dispatch:
schedule:
- cron: "0 0 * * 1" # Runs at 00:00 UTC on Monday
jobs:
container-job:
runs-on: ubuntu-latest
services:
postgres:
image: pyramation/postgis
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Enable corepack and pnpm
run: |
corepack enable
corepack prepare pnpm@9 --activate
pnpm -v
node -v
- name: Install dependencies
run: pnpm install
- name: Install PostgreSQL client tools
run: |
sudo apt-get update
sudo apt-get install -y postgresql-client
- name: Wait for PostgreSQL to be ready
run: |
echo "Waiting for PostgreSQL to be ready..."
for i in {1..30}; do
pg_isready -h localhost -p 5432 -U postgres && break
sleep 1
done
- name: Install pgpm CLI globally
run: npm install -g pgpm@0.2.15
- name: Bootstrap database with pgpm
run: |
pgpm admin-users bootstrap --yes
pgpm admin-users add --test --yes
env:
PGHOST: localhost
PGPORT: 5432
PGUSER: postgres
PGPASSWORD: password
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_FE_DEPLOYER_ACCESS }}
aws-secret-access-key: ${{ secrets.AWS_FE_DEPLOYER_SECRET }}
aws-region: "us-east-1"
- name: Install AWS CLI v2
run: |
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o /tmp/awscliv2.zip
unzip -q /tmp/awscliv2.zip -d /tmp
rm /tmp/awscliv2.zip
sudo /tmp/aws/install --update
rm -rf /tmp/aws/
- name: Run it 🚀
run: |
echo "Building project..."
pnpm build
echo "Deploying database schemas with pgpm..."
cd ./packages/stats-db
pgpm deploy --database stats_dev --createdb --yes
echo "Fetching NPM data..."
pnpm npm:fetch:packages
pnpm npm:fetch:downloads
pnpm npm:report
pnpm npm:badges
pnpm npm:readme
echo "Fetching GitHub data..."
pnpm gh:fetch
echo "Uploading database dump to S3..."
pnpm db:dump:s3
env:
# PostgreSQL Connection
PGHOST: localhost
PGPORT: 5432
PGUSER: postgres
PGPASSWORD: password
PGDATABASE: stats_dev
DATABASE_URL: postgres://postgres:password@localhost:5432/stats_dev
# GitHub Token
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# AWS S3 Configuration
AWS_REGION: us-east-1
S3_BUCKET_NAME: ${{ secrets.S3_BUCKET_NAME }}
# AWS Credentials
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_FE_DEPLOYER_ACCESS }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_FE_DEPLOYER_SECRET }}
- name: Upload artifacts 📦
uses: actions/upload-artifact@v4
with:
name: lib-count-badges
path: |
output/badges/lib-count/total_downloads.json
output/badges/lib-count/monthly_downloads.json
output/badges/lib-count/utils_category.json
output/badges/lib-count/launchql_category.json
output/badges/lib-count/hyperweb_category.json