Skip to content

Commit

Permalink
wip: packaging code
Browse files Browse the repository at this point in the history
  • Loading branch information
py committed Nov 28, 2024
1 parent a2d0d6b commit 6927894
Show file tree
Hide file tree
Showing 28 changed files with 2,567 additions and 15 deletions.
12 changes: 12 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: 2

updates:
- package-ecosystem: "cargo"
directory: "/"
schedule:
interval: "weekly"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
9 changes: 9 additions & 0 deletions .github/pull-request-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<!-- The PR description should answer 2 (maybe 3) important questions: -->

### What

<!-- What is this PR trying to accomplish (and why, if it's not obvious)? -->

### How

<!-- How is it trying to accomplish it (what are the implementation steps)? -->
44 changes: 44 additions & 0 deletions .github/workflows/cargo-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
on: [push]

name: DynamoDB NDC build

jobs:
build:
name: Build DynamoDB NDC
runs-on: ubuntu-latest
env:
CARGO_NET_GIT_FETCH_WITH_CLI: "true"
RUSTFLAGS: "-D warnings" # fail on warnings
steps:
- uses: actions/checkout@v4

- name: install protoc
uses: arduino/setup-protoc@v2
with:
version: "23.3"

- name: install tools
run: |
rustup show
- uses: Swatinem/rust-cache@v2

- name: build crates
run: |
cargo build --locked --release --all-features
- name: lint
run: |
cargo clippy --release -- --deny=clippy::all
# scream into Slack if something goes wrong
- name: report status
if: github.ref == 'refs/heads/main'
uses: ravsamhq/notify-slack-action@v2
with:
status: ${{ job.status }}
notify_when: failure
notification_title: "😧 Error on <{repo_url}|{repo}>"
message_format: "🐴 *{workflow}* {status_message} for <{repo_url}|{repo}>"
env:
SLACK_WEBHOOK_URL: ${{ secrets.BROKEN_BUILD_SLACK_WEBHOOK_URL }}
89 changes: 89 additions & 0 deletions .github/workflows/cargo-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# on: [push]

# name: BigQuery NDC tests

# jobs:
# test-query-engine:
# name: Test query-engine
# runs-on: ubuntu-latest
# env:
# CARGO_NET_GIT_FETCH_WITH_CLI: "true"
# RUSTFLAGS: "-D warnings" # fail on warnings
# steps:
# - uses: actions/checkout@v4

# - name: install tools
# run: |
# rustup show

# - uses: Swatinem/rust-cache@v2

# - name: run tests
# run: |
# cargo test --release -p query-engine-translation
# env:
# RUST_LOG: INFO

# # scream into Slack if something goes wrong
# - name: report status
# if: github.ref == 'refs/heads/main'
# uses: ravsamhq/notify-slack-action@v2
# with:
# status: ${{ job.status }}
# notify_when: failure
# notification_title: "😧 Error on <{repo_url}|{repo}>"
# message_format: "🐴 *{workflow}* {status_message} for <{repo_url}|{repo}>"
# env:
# SLACK_WEBHOOK_URL: ${{ secrets.BROKEN_BUILD_SLACK_WEBHOOK_URL }}

# test-bigquery-ndc:
# name: Test ndc-bigquery
# runs-on: ubuntu-latest
# env:
# CARGO_NET_GIT_FETCH_WITH_CLI: "true"
# RUSTFLAGS: "-D warnings" # fail on warnings

# steps:
# - uses: actions/checkout@v4

# - name: install protoc
# uses: arduino/setup-protoc@v2
# with:
# version: "23.3"

# - name: install tools
# run: |
# rustup show

# - uses: Swatinem/rust-cache@v2
# with:
# shared-key: "build" # share the cache across jobs

# # - uses: hoverkraft-tech/[email protected]
# # with:
# # compose-file: "./docker-compose.yaml"
# # up-flags: "--pull=always --wait"
# # down-flags: "--volumes"
# # services: |
# # bigquery

# - name: run tests
# run: |
# cargo test --release --workspace
# env:
# HASURA_BIGQUERY_SERVICE_KEY: "{\"type\": \"service_account\",\"project_id\": \"hasura-development\",\"private_key_id\": \"222dd3f9e98b6743bb8d74d7a126fe89e6ac221d\",\"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDZuxyxWk6bOxHr\\nht+MPZ7Q+F4D7AzTqCTZOmcldod+KHMlUCKwIOLQabAO8TEPhvcYyzBQ4gCwoN2i\\n7VoQbHmlTpQu1s43K25oIoEIicFTbHcL4MALiFnT44XYl+PxL+e//GibJYGjwqI+\\n3o2Go//o8BOfQEO/PPiQdub8/4VQjXGE0+xLeUjYURiJPu8ojrL2FdIqvzMaDWKq\\n2r6KuukIeWkqmt6fHnrGiseavg3g7pBPjqmRtX6ekY74XbkTQk1kmCKf9MLjZ1UI\\n+8QNp1C4pO4eDbp1Zkqz3uHhzccUvStkSCmppjKfD64Tp+6ExbUnMfq1UJ0GJBDM\\nVPeJF6+PAgMBAAECggEAFFSf88GKeH02CaeQ5S/1ze57HOOkOPlI443MBtgAA9w0\\nEEZgztBrTWmo+mQ0IA6KsSJ78vl/df63Y1jFYaY3X6OsO4lsPQONriSWptzyE9+b\\naB0G4azMMnhazaQ1MRa3jZo8jEwexFNOwg8W6P0UTsRoGKUwDkHbteWcYQBdCu3W\\nFa/CX3Tw0n/DdAVNi8Ai9K0d+Okmcv+ZRopeNuLENR28/VGSXj+Li1V7A0s+nX9E\\nyxuGrDY4WMxSXHkW2yjrDnPUs6dXLFk1HBQPaHrs3i6gGyNXfTNWUJ3nGQwZIqJI\\na1b4TMiGVapq33qCo/3Yi6jQ+I6KnpmWgQ7y5LXhoQKBgQDuA80oWCXQv7MERg91\\nFwammtXrMjoD234u3RGNtnU67yH87kvL+p18EiNlbmy+CWyoc1mOjLtTHvMBfMGh\\nfKt3BSuzrZZArA1GJF6J2Rew5dkJGzwPogLSnXMgrVwknAejKJw97wTJzzIZuuSc\\nb7P57+mFoSdR+eSb44WFcuMyoQKBgQDqLu9LWz+LcljDWDeMQ4kl8gkNZMe5//Qd\\nOpa6mN6T2nfRgxasaLo7WO8TqT4X28eBJKuru4BOeHVx0Y8GvWYyaW0uEEycdXVl\\n6man+YUhZezTjjB/nCeaz7E7LCcUao1JP2Y9xlnpO5jdyi2tYkCqu7vOxmnLArN/\\nl3zuXgrkLwKBgEzCzReF1ixMpt9p+PI6StrQdM01laBI2ZkjktWxUn1/Qebgs3FF\\nkiTBdMjxpABl6bUp/mgK2x8jjBuesJP0MRhhgoagJSUWV/GXKSYr7YgPmL9nGSex\\niFeEj+yp/F2SNKRaJImU3GZ5fB7wN2p8W/7vcNC3+IZnoWLlLdqsAroBAoGAdzZh\\nVoki9gfFq9uym1Kd9JUbipftHIBxcpeqt16un7GtIRiMaEP/2cpSGj4jf92/17wl\\nMA0JKekkUEaPeqzb43nLvJFLjrI0iyciDwx0eyX5w1A03CFP//0OicLWOgxr1AfU\\nMkpQ5uwRy4XqbsL/jGp5Fq/mlxPO8HrbfDSfcr0CgYEAxN/RMCYODz+p9xZ6tbiS\\nfHFrCgvPpYR9hEWhb/DyT4Q/OSzk0TItuSXGc3uicYeIycHIndyWej/a1HGg0IRK\\nqjGbqGvRJIrzhLvLog1oOGADFSE2IJrxV2m9lQG8IUow4QUFcoZaCXZAQEvWeo+D\\nq+4Pe2w4aMZeyqpt/mOSGzQ=\\n-----END PRIVATE KEY-----\\n\",\"client_email\": \"[email protected]\",\"client_id\": \"116460406056940511807\",\"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\",\"token_uri\": \"https://oauth2.googleapis.com/token\",\"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\": \"https://www.googleapis.com/robot/v1/metadata/x509/skm-bq-test%40hasura-development.iam.gserviceaccount.com\",\"universe_domain\": \"googleapis.com\"}"
# HASURA_BIGQUERY_PROJECT_ID: "hasura-development"
# HASURA_BIGQUERY_DATASET_ID: "chinook_sample"
# RUST_LOG: INFO

# # scream into Slack if something goes wrong
# - name: Report Status
# if: github.ref == 'refs/heads/main'
# uses: ravsamhq/notify-slack-action@v2
# with:
# status: ${{ job.status }}
# notify_when: failure
# notification_title: "😧 Error on <{repo_url}|{repo}>"
# message_format: "🐴 *{workflow}* {status_message} for <{repo_url}|{repo}>"
# env:
# SLACK_WEBHOOK_URL: ${{ secrets.BROKEN_BUILD_SLACK_WEBHOOK_URL }}
36 changes: 36 additions & 0 deletions .github/workflows/check-format.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: DynamoDB NDC format

on:
push:

jobs:
cargo-fmt:
name: check formatting with cargo fmt
runs-on: ubuntu-latest
env:
CARGO_NET_GIT_FETCH_WITH_CLI: "true"
RUSTFLAGS: "-D warnings" # fail on warnings
steps:
- uses: actions/checkout@v4

- name: install tools
run: |
rustup show
- uses: Swatinem/rust-cache@v2

- name: check formatting
run: |
cargo fmt --all --check
# scream into Slack if something goes wrong
- name: Report Status
if: github.ref == 'refs/heads/main'
uses: ravsamhq/notify-slack-action@v2
with:
status: ${{ job.status }}
notify_when: failure
notification_title: "😧 Error on <{repo_url}|{repo}>"
message_format: "🐴 *{workflow}* {status_message} for <{repo_url}|{repo}>"
env:
SLACK_WEBHOOK_URL: ${{ secrets.BROKEN_BUILD_SLACK_WEBHOOK_URL }}
51 changes: 51 additions & 0 deletions .github/workflows/nix-check.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: DynamoDB NDC nix check

on:
push:

jobs:
nix-flake-check:
name: nix flake check
runs-on: ubuntu-latest
steps:
- name: Checkout πŸ›ŽοΈ
uses: actions/checkout@v4

- name: Install Nix ❄
uses: cachix/install-nix-action@V28
with:
github_access_token: ${{ secrets.GITHUB_TOKEN }}

- name: Set up the Nix Cache πŸ”Œ
uses: cachix/cachix-action@v15
with:
name: hasura-v3-dev
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
useDaemon: false # attempt to stop hanging on cleanup

- name: nix flake check
run: |
nix flake check --print-build-logs
nix-develop:
name: nix develop
runs-on: ubuntu-latest
steps:
- name: Checkout πŸ›ŽοΈ
uses: actions/checkout@v4

- name: Install Nix ❄
uses: cachix/install-nix-action@V28
with:
github_access_token: ${{ secrets.GITHUB_TOKEN }}

- name: Set up the Nix Cache πŸ”Œ
uses: cachix/cachix-action@v15
with:
name: hasura-v3-dev
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
useDaemon: false # attempt to stop hanging on cleanup

- name: nix develop --command true
run: |
nix develop --print-build-logs --command true
Loading

0 comments on commit 6927894

Please sign in to comment.