Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: merge main into shuttle-next #543

Merged
merged 111 commits into from
Dec 21, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
cf1b30c
feat(blog): add missing sqlx migration code to auth blog post (#408)
oddgrd Oct 18, 2022
ac43016
misc: 0.7.0 (#407)
chesedo Oct 19, 2022
37755ca
fix(cargo-shuttle): prevent crash when config owned by root (#409)
akrantz01 Oct 19, 2022
76f4fee
fix: use correct timeout start point (#410)
brokad Oct 20, 2022
607c3e1
feat(deployer): implement container memory limits (#411)
oddgrd Oct 20, 2022
e676715
bug: `transport error` when trying to connect to provisioner (#416)
chesedo Oct 20, 2022
6e771c7
feat: gateway admin revive (#412)
brokad Oct 20, 2022
8f7a341
bug: timeout curl health check on deployer (#415)
chesedo Oct 20, 2022
b4149f2
Article/beta article (#420)
Oct 21, 2022
1b983e8
Feat(www): shuttle beta signup (#421)
oddgrd Oct 21, 2022
7c05afc
bug: Fix thruster postgres example (#414)
trezm Oct 21, 2022
9c83baf
feat: shell completions (#343)
XyLyXyRR Oct 21, 2022
c222354
bug: package Secrets.toml (#422)
chesedo Oct 21, 2022
b00671d
bug: big archives being cut off at 32 768 bytes (#423)
chesedo Oct 21, 2022
65b71c8
chore: v0.7.1 (#424)
chesedo Oct 24, 2022
bc13eb7
refactor: provide better context for errors (#430)
chesedo Oct 25, 2022
fb623e7
refactor: do our own health checks on deployer containers (#427)
chesedo Oct 25, 2022
0968b72
bug: clear build folder before extracting (#428)
chesedo Oct 25, 2022
f05fc2b
added some images (#435)
brokad Oct 27, 2022
4be3e5a
feat(www): beta blog updates (#434)
oddgrd Oct 27, 2022
61987e2
feat: add captioned image component (#440)
oddgrd Oct 27, 2022
a5b7634
www: post small tweaks (#439)
brokad Oct 27, 2022
c7a13f9
feat: replace cursed gif (#441)
oddgrd Oct 27, 2022
b430d21
Feat/update contributing (#426)
oddgrd Oct 28, 2022
b097d3b
chore: v0.7.2 (#442)
chesedo Oct 28, 2022
566b9e8
Merge remote-tracking branch 'upstream/main' into development
chesedo Oct 28, 2022
5fd6e40
Merge pull request #443 from shuttle-hq/development
chesedo Oct 28, 2022
c4f0837
feat: link the tracing spans between services (#445)
chesedo Oct 31, 2022
7bfb1a2
Merge remote-tracking branch 'upstream/main' into development
chesedo Oct 31, 2022
c2499cb
Add docker-compose extra flags param in Makefile (#446)
brokad Nov 1, 2022
8a6efb8
misc: restructure repo (#453)
chesedo Nov 2, 2022
6c848bf
refactor: tf files have been moved to shuttle-hq/terraform-aws-shuttle
brokad Nov 2, 2022
bd0c381
fix: wrap around common::ProjectName for parsing (#451)
brokad Nov 3, 2022
9d5e345
fix: gateway state drifts, health checks and project recreation (#447)
brokad Nov 3, 2022
617bad0
misc: add more helpful flags to Makefile
brokad Nov 3, 2022
83cbccd
misc: remove old migrator (#463)
chesedo Nov 4, 2022
b1eee6d
feat: add account_tier column (#458)
brokad Nov 4, 2022
5fbf7c9
feat: prefetch shuttle-service crates (#461)
chesedo Nov 4, 2022
88c877d
Feat: revive via gateway endpoint (#460)
oddgrd Nov 4, 2022
7471c08
feat: create a new admin cli binary crate (#462)
chesedo Nov 4, 2022
b6bd64c
fix: broken link (#467)
oddgrd Nov 8, 2022
b4055af
fix: add timeout to health checks (#468)
brokad Nov 8, 2022
3ab6c71
feat(gateway): add custom domains table and routing (#465)
akrantz01 Nov 8, 2022
3a98a47
WIP feat: count recent start events before restart (#469)
oddgrd Nov 11, 2022
001dbcf
feat: make deployer only answer its own project (#466)
chesedo Nov 11, 2022
836c5f7
Fixed Links in Readme (#477)
Nereuxofficial Nov 13, 2022
3bcc683
refactor: base client error off response status code (#470)
chesedo Nov 14, 2022
e10f096
feat: verify project exists before sending destroy task (#474)
oddgrd Nov 15, 2022
7b80c45
feat: add a custom domains admin route (#473)
chesedo Nov 16, 2022
c3c0ced
bug: deployer freezes (#478)
chesedo Nov 17, 2022
74aeb46
ci: green (#482)
chesedo Nov 17, 2022
3bd6f0f
feat: TLS acceptor with SNI resolver (#471)
brokad Nov 18, 2022
d8fedbd
fix: custom domain routing (#484)
brokad Nov 21, 2022
9a85dc4
refactor: more metrics (#475)
chesedo Nov 21, 2022
ac06f5c
misc: configurable deployment tags (#486)
brokad Nov 21, 2022
b748493
feat: gateway restores removed containers (#485)
brokad Nov 21, 2022
e3fb067
fix: backend bumps and hot fixes (#487)
brokad Nov 23, 2022
57ec829
Feature/support actix web (#491)
biryukovmaxim Nov 30, 2022
80f8e12
Doc: Fix command to prime database with docker-compose (#502)
guerinoni Nov 30, 2022
c2fa52c
Doc: Improve contributing documentation (#499)
guerinoni Nov 30, 2022
6c3025b
feat: static file support for a single folder (#501)
chesedo Dec 1, 2022
6a551d1
ci: build binary (#483)
chesedo Dec 1, 2022
961964a
feat: bump rust to 1.64, bump dependencies (#495)
oddgrd Dec 1, 2022
887dce4
feat: interactive project initialization (#498)
Procrat Dec 2, 2022
ca97f03
feat: bump pinned rust version to 1.65 (#504)
oddgrd Dec 2, 2022
650e3f5
misc: env updates (#509)
chesedo Dec 2, 2022
3d5c55b
feat: make the folder configurable (#508)
chesedo Dec 5, 2022
8052e87
feat: implement workspace inheritance (#506)
oddgrd Dec 7, 2022
d9d6d3e
refactor: switch away from cargo package (#507)
chesedo Dec 7, 2022
b597eef
feat: add spinner wait for `project new` and `project status --follow…
guerinoni Dec 7, 2022
0c4eb94
fix: capitalise correctly (#511)
brokad Dec 7, 2022
6bbda80
fix: make nice (#512)
brokad Dec 7, 2022
2e6ac41
feat: find (soon to be) invalid project names (#479)
chesedo Dec 8, 2022
7525c7a
refactor: missed axum 0.6 update (#513)
chesedo Dec 8, 2022
a37903a
feat: build tests in release profile, limit build workers (#514)
oddgrd Dec 9, 2022
519ac04
feat: create `init` project from correct dir (#518)
oddgrd Dec 9, 2022
a957063
misc: interactive init gif (#519)
brokad Dec 9, 2022
bc7b339
Feat/set examples submodule to main (#520)
oddgrd Dec 9, 2022
5c19ea3
chore: 0.8.0 (#521)
oddgrd Dec 9, 2022
5b9769e
chore: bump examples (#522)
brokad Dec 9, 2022
84250da
bug: hacking static folders (#524)
chesedo Dec 12, 2022
489b925
fix: actix integration with state (#523)
oddgrd Dec 12, 2022
8387138
feat(gateway,deployer): add more tracing events (#500)
akrantz01 Dec 13, 2022
18767f0
feat: canonicalize before trace (#531)
oddgrd Dec 13, 2022
8e93e87
feat: 'clean' subcommand (#530)
chesedo Dec 14, 2022
5c9487d
Feat/set cpu limit (#529)
oddgrd Dec 14, 2022
d60f642
feat: add panamax for mirroring crates.io (#525)
chesedo Dec 14, 2022
5e604b4
feat: build queue (#532)
chesedo Dec 14, 2022
ae8ee01
feat: per-project parallelism (#533)
brokad Dec 14, 2022
a7e7ed6
feat: temp validation of project name in gateway (#534)
oddgrd Dec 14, 2022
24657bc
fix(deployer): keep Cargo.lock between deployments (#517)
Procrat Dec 14, 2022
027b50d
ci: remove build and push req on build binaries (#535)
oddgrd Dec 14, 2022
5ed12ad
refactor: don't crash when failing to release slot (#536)
chesedo Dec 14, 2022
5d638dc
refactor: release build slot parse type correctly (#538)
chesedo Dec 14, 2022
84dd5fa
refactor: remove prefetch (#539)
chesedo Dec 14, 2022
0afa129
feat: add cron job for syncing mirror (#537)
chesedo Dec 14, 2022
998fff7
chore: bump cargo-shuttle to 0.8.1 (#540)
oddgrd Dec 14, 2022
b977c97
Merge branch 'main' into feat/shuttle-next-merge-main
oddgrd Dec 16, 2022
37d8908
refactor: update manifests and lockfile
oddgrd Dec 16, 2022
301933a
refactor: fmt
oddgrd Dec 16, 2022
f19f872
fix: unused imports, add runtime to deploymentmanager
oddgrd Dec 16, 2022
07ee34d
feat: move storagemanager to common
oddgrd Dec 18, 2022
934ae62
fix: storage manager imports
oddgrd Dec 18, 2022
a971695
fix: codegen test with outdated expected error
oddgrd Dec 19, 2022
1fc5e27
fix: service tests after removing service default features
oddgrd Dec 19, 2022
087911f
fix: deployer tests after removing service default features
oddgrd Dec 19, 2022
dca8a5f
fix: typo
oddgrd Dec 19, 2022
336fdea
ci: attempt to fix protoc error
oddgrd Dec 19, 2022
b0ef7b9
fix: deployer runtime client connection
oddgrd Dec 19, 2022
abf756a
refactor: remove redundant feature flags
oddgrd Dec 19, 2022
de8cf35
refactor: remove storage_manager from deployer crate
oddgrd Dec 20, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
192 changes: 169 additions & 23 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@ version: 2.1
orbs:
docker-buildx: sensu/[email protected]
aws-ecr: circleci/[email protected]
win: circleci/[email protected]

executors:
docker-rust:
docker:
- image: cimg/rust:1.63.0
- image: cimg/rust:1.65.0
image-ubuntu:
machine:
image: ubuntu-2204:2022.04.1
Expand Down Expand Up @@ -89,6 +90,7 @@ commands:
shuttle-persist = { path = "$PWD/resources/persist" }
shuttle-shared-db = { path = "$PWD/resources/shared-db" }
shuttle-secrets = { path = "$PWD/resources/secrets" }
shuttle-static-folder = { path = "$PWD/resources/static-folder" }
EOF
install-rust:
steps:
Expand All @@ -106,6 +108,29 @@ commands:
sudo unzip -o protoc-21.9-linux-x86_64.zip -d /usr bin/protoc &&\
sudo unzip -o protoc-21.9-linux-x86_64.zip -d /usr/ 'include/*' &&\
rm -f protoc-21.9-linux-x86_64.zip
make-artifact:
parameters:
target:
description: "Rust target to put in artifact"
type: string
suffix:
description: "Suffix that is on the binary"
type: string
default: ""
steps:
- run:
name: Make artifact
command: |
mkdir shuttle
mv target/<< parameters.target >>/release/cargo-shuttle<< parameters.suffix >> shuttle/cargo-shuttle<< parameters.suffix >>
mv LICENSE shuttle/
mv README.md shuttle/
mkdir artifacts
tar -cvzf artifacts/cargo-shuttle-${CIRCLE_TAG}-<< parameters.target >>.tar.gz shuttle
- persist_to_workspace:
root: artifacts
paths:
- cargo-shuttle-${CIRCLE_TAG}-<< parameters.target >>.tar.gz

jobs:
workspace-fmt:
Expand All @@ -116,7 +141,9 @@ jobs:
- install-protoc
- run: cargo fmt --all --check
- run: cargo install cargo-sort
- run: cargo sort --check --workspace
# TODO: this is incompatible with workspace inheritance, uncomment when
# https://github.com/DevinR528/cargo-sort/pull/29 is merged
# - run: cargo sort --check --workspace
- run: cargo check --workspace --all-targets
- save-cargo-cache
workspace-clippy:
Expand Down Expand Up @@ -151,7 +178,9 @@ jobs:
- apply-patches
- run: cargo fmt --all --check --manifest-path << parameters.path >>/Cargo.toml
- run: cargo install cargo-sort
- run: cargo sort --check << parameters.path >>
# TODO: this is incompatible with workspace inheritance, uncomment when
# https://github.com/DevinR528/cargo-sort/pull/29 is merged
# - run: cargo sort --check << parameters.path >>
- run: |
cargo clippy --tests \
--all-targets \
Expand Down Expand Up @@ -186,7 +215,10 @@ jobs:
executor: image-ubuntu
steps:
- install-rust
- install-protoc
- checkout
- run: git submodule sync
- run: git submodule update --init
- restore-cargo-cache
- apply-patches
- run:
Expand All @@ -205,6 +237,8 @@ jobs:
steps:
- install-rust
- checkout
- run: git submodule sync
- run: git submodule update --init
- restore-buildx-cache
- run:
name: Make images for tests
Expand Down Expand Up @@ -244,6 +278,89 @@ jobs:
command: |
PUSH=true PLATFORMS=linux/amd64 make images
- save-buildx-cache
build-binaries-linux:
machine:
image: << parameters.image >>
resource_class: << parameters.resource_class >>
parameters:
target:
description: "Linux target to build for"
type: string
image:
description: "Machine image to use"
type: string
resource_class:
description: "The resource type to use for the machine"
type: string
steps:
- checkout
- run: sudo apt update && sudo DEBIAN_FRONTEND=noninteractive apt install -y libssl-dev musl-tools clang
- run:
name: Install Rust
command: curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | bash -s -- -y --default-toolchain 1.65.0 --target << parameters.target >>
- run:
name: Build
command: |
# From https://github.com/briansmith/ring/issues/1414#issuecomment-1055177218
export CC_aarch64_unknown_linux_musl=clang
# "vendored-openssl" is from https://github.com/cross-rs/cross/issues/229#issuecomment-597898074
cargo build --release --package cargo-shuttle --features vendored-openssl --target << parameters.target >>
- make-artifact:
target: << parameters.target >>
build-binaries-windows:
executor:
name: win/server-2022
size: medium
environment:
CARGO_NET_GIT_FETCH_WITH_CLI: "true"
steps:
- checkout
- run: choco install -y strawberryperl
- run:
name: Install Rust
command: |
wget -OutFile "C:\rustup-init.exe" https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe
C:\rustup-init.exe -y --default-toolchain 1.65.0 --target x86_64-pc-windows-msvc
- run:
name: Build
command: |
# From https://github.com/alexcrichton/openssl-src-rs/issues/45
# Because of https://github.com/openssl/openssl/issues/9048
$env:OPENSSL_SRC_PERL="C:\Strawberry\perl\bin\perl.exe"
# "vendored-openssl" is from https://github.com/cross-rs/cross/issues/229#issuecomment-597898074
..\.cargo\bin\cargo.exe build --release --package cargo-shuttle --features vendored-openssl --target x86_64-pc-windows-msvc
- make-artifact:
target: x86_64-pc-windows-msvc
suffix: ".exe"
build-binaries-mac:
macos:
xcode: 12.5.1
resource_class: medium
steps:
- checkout
- run:
name: Install Rust
command: curl --proto '=https' https://sh.rustup.rs -sSf | bash -s -- -y --default-toolchain 1.65.0 --target x86_64-apple-darwin
- run:
name: Build
command: |
# "vendored-openssl" is from https://github.com/cross-rs/cross/issues/229#issuecomment-597898074
cargo build --release --package cargo-shuttle --features vendored-openssl --target x86_64-apple-darwin
- make-artifact:
target: x86_64-apple-darwin
publish-github-release:
docker:
- image: cimg/go:1.19.3
steps:
- attach_workspace:
at: artifacts
- run:
name: "Publish Release on GitHub"
environment:
GITHUB_TOKEN: $GITHUB_TOKEN
command: |
go install github.com/tcnksm/[email protected]
ghr -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -delete -draft ${CIRCLE_TAG} artifacts/

workflows:
version: 2
Expand All @@ -256,33 +373,16 @@ workflows:
- workspace-fmt
matrix:
parameters:
framework: ["web-axum", "web-rocket", "web-poem", "web-thruster", "web-tide", "web-tower","web-warp", "web-salvo", "bot-serenity"]
framework: ["web-actix-web", "web-axum", "web-rocket", "web-poem", "web-thruster", "web-tide", "web-tower","web-warp", "web-salvo", "bot-serenity"]
- check-standalone:
matrix:
parameters:
path:
- examples/axum/hello-world
- examples/axum/websocket
- examples/poem/hello-world
- examples/poem/mongodb
- examples/poem/postgres
- examples/rocket/authentication
- examples/rocket/hello-world
- examples/rocket/postgres
- examples/rocket/url-shortener
- examples/thruster/hello-world
- examples/thruster/postgres
- examples/salvo/hello-world
- examples/serenity/hello-world
- examples/serenity/postgres
- examples/tide/hello-world
- examples/tide/postgres
- examples/tower/hello-world

- resources/aws-rds
- resources/persist
- resources/secrets
- resources/shared-db
- resources/static-folder
- service-test:
requires:
- workspace-clippy
Expand All @@ -297,9 +397,55 @@ workflows:
- service-test
- platform-test
- check-standalone
filters:
branches:
only: production
- build-and-push:
requires:
- e2e-test
filters:
branches:
only: main
only: production
- build-binaries-linux:
name: build-binaries-x86_64
image: ubuntu-2204:2022.04.1
target: x86_64-unknown-linux-musl
resource_class: medium
filters:
tags:
only: /^v.*/
branches:
only: production
- build-binaries-linux:
name: build-binaries-aarch64
image: ubuntu-2004:202101-01
target: aarch64-unknown-linux-musl
resource_class: arm.medium
filters:
tags:
only: /^v.*/
branches:
only: production
- build-binaries-windows:
filters:
tags:
only: /^v.*/
branches:
only: production
- build-binaries-mac:
filters:
tags:
only: /^v.*/
branches:
only: production
- publish-github-release:
requires:
- build-binaries-x86_64
- build-binaries-aarch64
- build-binaries-windows
- build-binaries-mac
filters:
tags:
only: /^v.*/
branches:
only: production
33 changes: 0 additions & 33 deletions .github/workflows/www.yml

This file was deleted.

7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,10 @@ e2e/users.toml

.shuttle-*
docker-compose.rendered.yml

.env
node_modules/
package.json
yarn.lock

*.wasm
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "examples"]
path = examples
url = [email protected]:shuttle-hq/examples.git
Loading