-
Notifications
You must be signed in to change notification settings - Fork 126
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial commit prior to open sourcing
This commit is a squash of all commits in the private repository prior to Feb 28th. The committer stats at this time are as follows: - @lucacasonato: 174 commits - @crowlKats: 110 commits - @ry: 68 commits - @marvinhagemeister: 42 commits - @bartlomieju: 26 commits - @josh-collinsworth: 17 commits - @kwhinnery: 7 commits - @dsherret: 7 commits - @littledivy: 5 commits - @donjo: 4 commits - @kt3k: 1 commit Co-authored-by: Leo Kettmeir <[email protected]> Co-authored-by: Ryan Dahl <[email protected]> Co-authored-by: Marvin Hagemeister <[email protected]> Co-authored-by: Bartek Iwańczuk <[email protected]> Co-authored-by: Josh Collinsworth <[email protected]> Co-authored-by: Kevin Whinnery <[email protected]> Co-authored-by: David Sherret <[email protected]> Co-authored-by: Divy Srivastava <[email protected]> Co-authored-by: John Donmoyer <[email protected]> Co-authored-by: Yoshiya Hinosawa <[email protected]>
- Loading branch information
Showing
494 changed files
with
64,206 additions
and
0 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
DATABASE_URL=postgres://<username-and-password>@localhost/registry | ||
GITHUB_CLIENT_ID=xxx | ||
GITHUB_CLIENT_SECRET=xxx | ||
GCS_ENDPOINT=http://localhost:4080 | ||
OTLP_ENDPOINT=http://localhost:4317 | ||
MODULES_BUCKET=modules | ||
PUBLISHING_BUCKET=publishing | ||
DOCS_BUCKET=docs | ||
NPM_BUCKET=npm | ||
REGISTRY_URL=http://jsr.test | ||
NPM_URL=http://npm.jsr.test | ||
|
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,250 @@ | ||
name: ci | ||
on: | ||
push: | ||
branches: | ||
- main | ||
pull_request: | ||
branches: | ||
- "**" | ||
|
||
env: | ||
TERRAFORM_VERSION: "1.4.2" | ||
|
||
jobs: | ||
frontend: | ||
runs-on: ubuntu-22.04 | ||
permissions: | ||
contents: read | ||
id-token: write | ||
steps: | ||
- name: Clone repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Install Deno | ||
uses: denoland/setup-deno@v1 | ||
with: | ||
deno-version: 1.x | ||
|
||
- name: Check license headers | ||
run: deno task lint:license | ||
|
||
- name: Format | ||
run: deno fmt --check | ||
working-directory: frontend | ||
|
||
- name: Lint | ||
run: deno lint | ||
working-directory: frontend | ||
|
||
- name: Typecheck | ||
run: deno check main.ts | ||
working-directory: frontend | ||
|
||
- name: Build Fresh | ||
run: deno task build | ||
working-directory: frontend | ||
|
||
test: | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- name: Clone repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Install Rust | ||
uses: dsherret/rust-toolchain-file@v1 | ||
|
||
- uses: Swatinem/rust-cache@v2 | ||
|
||
- name: Setup postgres for tests | ||
run: docker-compose up -d | ||
|
||
- name: Build | ||
run: cargo build --all-targets --tests | ||
working-directory: api | ||
|
||
- name: Test | ||
run: cargo test | ||
working-directory: api | ||
|
||
- uses: taiki-e/cache-cargo-install-action@v1 | ||
with: | ||
tool: [email protected] | ||
|
||
# If it's not up to date, run `cargo sqlx prepare` locally and commit the | ||
# changes. You may have to run `cargo install sqlx-cli` first. | ||
- name: Check sqlx metadata is up to date | ||
run: | | ||
cargo sqlx migrate run | ||
cargo sqlx prepare --check | ||
working-directory: api | ||
env: | ||
DATABASE_URL: postgres://user:password@localhost/registry | ||
|
||
- name: Lint | ||
run: cargo clippy --all-targets --all-features -- -D warnings | ||
working-directory: api | ||
|
||
- name: Format | ||
run: cargo fmt --all -- --check | ||
working-directory: api | ||
|
||
docker-images: | ||
runs-on: ubuntu-22.04 | ||
permissions: | ||
contents: read | ||
id-token: write | ||
env: | ||
API_IMAGE_ID_BASE: us-central1-docker.pkg.dev/deno-registry3-infra/registry/api | ||
FRONTEND_IMAGE_ID_BASE: us-central1-docker.pkg.dev/deno-registry3-infra/registry/frontend | ||
outputs: | ||
api_image_id: ${{ steps.api_image_id.outputs.image_id }} | ||
frontend_image_id: ${{ steps.frontend_image_id.outputs.image_id }} | ||
steps: | ||
- name: Clone repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Authenticate with GCP | ||
id: gcp_auth | ||
uses: google-github-actions/auth@v2 | ||
with: | ||
project_id: deno-registry3-infra | ||
token_format: access_token | ||
workload_identity_provider: projects/289615555261/locations/global/workloadIdentityPools/github-actions/providers/github-actions | ||
service_account: [email protected] | ||
|
||
- uses: docker/login-action@v3 | ||
with: | ||
registry: us-central1-docker.pkg.dev | ||
username: oauth2accesstoken | ||
password: ${{ steps.gcp_auth.outputs.access_token }} | ||
|
||
- name: Set up docker buildx | ||
uses: docker/setup-buildx-action@v3 | ||
|
||
- name: Copy Cargo.lock | ||
run: cp Cargo.lock api/Cargo.lock | ||
|
||
- name: Build and push api docker image | ||
uses: docker/build-push-action@v5 | ||
id: api_push | ||
with: | ||
context: api | ||
push: true | ||
tags: ${{ env.API_IMAGE_ID_BASE }}:${{ github.sha }} | ||
cache-from: type=gha,scope=docker-api | ||
cache-to: type=gha,mode=max,scope=docker-api | ||
|
||
- name: Build and push frontend docker image | ||
uses: docker/build-push-action@v5 | ||
id: frontend_push | ||
with: | ||
context: frontend | ||
push: true | ||
tags: ${{ env.FRONTEND_IMAGE_ID_BASE }}:${{ github.sha }} | ||
cache-from: type=gha,scope=docker-frontend | ||
cache-to: type=gha,mode=max,scope=docker-frontend | ||
|
||
- name: Set api_image_id output | ||
id: api_image_id | ||
run: echo "image_id=${{ env.API_IMAGE_ID_BASE }}@${{ steps.api_push.outputs.imageid }}" >> $GITHUB_OUTPUT | ||
|
||
- name: Set frontend_image_id output | ||
id: frontend_image_id | ||
run: echo "image_id=${{ env.FRONTEND_IMAGE_ID_BASE }}@${{ steps.frontend_push.outputs.imageid }}" >> $GITHUB_OUTPUT | ||
|
||
staging: | ||
runs-on: ubuntu-22.04 | ||
needs: docker-images | ||
environment: | ||
name: staging | ||
url: https://deno-registry-staging.net | ||
permissions: | ||
contents: read | ||
id-token: write | ||
steps: | ||
- name: Clone repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Install Deno | ||
uses: denoland/setup-deno@v1 | ||
with: | ||
deno-version: 1.x | ||
|
||
- name: Install terraform | ||
uses: hashicorp/setup-terraform@v3 | ||
with: | ||
terraform_version: ${{ env.TERRAFORM_VERSION }} | ||
|
||
- name: Authenticate with GCP | ||
id: gcp_auth | ||
uses: google-github-actions/auth@v2 | ||
with: | ||
project_id: deno-registry3-staging | ||
workload_identity_provider: projects/1067420915575/locations/global/workloadIdentityPools/github-actions/providers/github-actions | ||
service_account: [email protected] | ||
|
||
- name: terraform plan | ||
run: | | ||
touch terraform/staging.secret.tfvars | ||
deno task tf:staging:init | ||
terraform version | ||
deno task tf:staging:plan | ||
env: | ||
API_IMAGE_ID: ${{ needs.docker-images.outputs.api_image_id }} | ||
FRONTEND_IMAGE_ID: ${{ needs.docker-images.outputs.frontend_image_id }} | ||
TF_VAR_github_client_secret: ${{ secrets.GH_CLIENT_SECRET }} | ||
TF_VAR_postmark_token: ${{ secrets.POSTMARK_TOKEN }} | ||
TF_VAR_orama_index_id: ${{ secrets.ORAMA_INDEX_ID }} | ||
TF_VAR_orama_private_api_key: ${{ secrets.ORAMA_PRIVATE_API_KEY }} | ||
|
||
- name: terraform apply | ||
run: deno task tf:staging:apply | ||
|
||
prod: | ||
if: github.ref == 'refs/heads/main' | ||
runs-on: ubuntu-22.04 | ||
needs: docker-images | ||
environment: | ||
name: prod | ||
url: https://jsr.io | ||
permissions: | ||
contents: read | ||
id-token: write | ||
steps: | ||
- name: Clone repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Install Deno | ||
uses: denoland/setup-deno@v1 | ||
with: | ||
deno-version: 1.x | ||
|
||
- name: Install terraform | ||
uses: hashicorp/setup-terraform@v3 | ||
with: | ||
terraform_version: ${{ env.TERRAFORM_VERSION }} | ||
|
||
- name: Authenticate with GCP | ||
id: gcp_auth | ||
uses: google-github-actions/auth@v2 | ||
with: | ||
project_id: deno-registry3-prod | ||
workload_identity_provider: projects/614736529383/locations/global/workloadIdentityPools/github-actions/providers/github-actions | ||
service_account: [email protected] | ||
|
||
- name: terraform plan | ||
run: | | ||
touch terraform/prod.secret.tfvars | ||
deno task tf:prod:init | ||
terraform version | ||
deno task tf:prod:plan | ||
env: | ||
API_IMAGE_ID: ${{ needs.docker-images.outputs.api_image_id }} | ||
FRONTEND_IMAGE_ID: ${{ needs.docker-images.outputs.frontend_image_id }} | ||
TF_VAR_github_client_secret: ${{ secrets.GH_CLIENT_SECRET }} | ||
TF_VAR_postmark_token: ${{ secrets.POSTMARK_TOKEN }} | ||
TF_VAR_orama_index_id: ${{ secrets.ORAMA_INDEX_ID }} | ||
TF_VAR_orama_private_api_key: ${{ secrets.ORAMA_PRIVATE_API_KEY }} | ||
|
||
- name: terraform apply | ||
run: deno task tf:prod:apply |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
name: Orama Deploy | ||
|
||
on: | ||
schedule: | ||
- cron: "*/15 * * * *" | ||
|
||
jobs: | ||
orama: | ||
runs-on: ubuntu-22.04 | ||
strategy: | ||
matrix: | ||
environment: ["prod", "staging"] | ||
environment: | ||
name: ${{ matrix.environment }} | ||
steps: | ||
- name: Deploy ${{ matrix.environment }} | ||
env: | ||
ORAMA_INDEX_ID: ${{ secrets.ORAMA_INDEX_ID }} | ||
ORAMA_PRIVATE_API_KEY: ${{ secrets.ORAMA_PRIVATE_API_KEY }} | ||
run: | | ||
curl https://api.oramasearch.com/api/v1/webhooks/$ORAMA_INDEX_ID/deploy \ | ||
-X POST \ | ||
-H "Authorization: Bearer $ORAMA_PRIVATE_API_KEY" |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
name: Orama Reindex | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
environment: | ||
description: 'Environment for deployment' | ||
type: choice | ||
options: | ||
- prod | ||
- staging | ||
required: true | ||
|
||
jobs: | ||
reindex_orama: | ||
runs-on: ubuntu-22.04 | ||
environment: | ||
name: ${{ github.event.inputs.environment }} | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- uses: denoland/setup-deno@v1 | ||
- name: Deploy | ||
env: | ||
ORAMA_INDEX_ID: ${{ secrets.ORAMA_INDEX_ID }} | ||
ORAMA_PRIVATE_API_KEY: ${{ secrets.ORAMA_PRIVATE_API_KEY }} | ||
JSR_URL: ${{ vars.ENVIRONMENT_URL }} | ||
run: deno task tools:orama:reindex |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
.DS_Store | ||
|
||
# rust | ||
target/ | ||
|
||
# terraform | ||
.terraform/ | ||
*.tfplan | ||
*.tfstate* | ||
*.secret.tfvars | ||
|
||
**/.env | ||
|
||
frontend/node_modules | ||
frontend/dist | ||
|
||
.gcs |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
{ | ||
"**/*.{ts,tsx,rs,tf}": "// Copyright 2024 the JSR authors. All rights reserved. MIT license.", | ||
"ignore": [ | ||
"api/testdata/", | ||
"frontend/_fresh/", | ||
"frontend/node_modules/", | ||
"target/", | ||
".gcs/", | ||
"terraform/.terraform/", | ||
".git/" | ||
] | ||
} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
{ | ||
"rust-analyzer.cargo.features": [], | ||
"deno.enable": true, | ||
"deno.config": "./frontend/deno.json", | ||
"[typescriptreact]": { | ||
"editor.defaultFormatter": "denoland.vscode-deno" | ||
}, | ||
"[typescript]": { | ||
"editor.defaultFormatter": "denoland.vscode-deno" | ||
}, | ||
"[javascriptreact]": { | ||
"editor.defaultFormatter": "denoland.vscode-deno" | ||
}, | ||
"[javascript]": { | ||
"editor.defaultFormatter": "denoland.vscode-deno" | ||
}, | ||
"[markdown]": { | ||
"editor.defaultFormatter": "denoland.vscode-deno" | ||
}, | ||
"[terraform]": { | ||
"editor.defaultFormatter": "hashicorp.terraform" | ||
}, | ||
"css.customData": [".vscode/tailwind.json"] | ||
} |
Oops, something went wrong.