Skip to content

Commit

Permalink
feat(serverless): release serverless container (#873)
Browse files Browse the repository at this point in the history
Co-authored-by: Tom Lienard <[email protected]>
  • Loading branch information
anbraten and QuiiBz authored May 28, 2023
1 parent 75f15f2 commit dd2b64e
Show file tree
Hide file tree
Showing 6 changed files with 82 additions and 10 deletions.
12 changes: 4 additions & 8 deletions .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,10 @@
}
],
"commit": false,
"fixed": [
[
"@lagon/runtime",
"@lagon/js-runtime"
]
],
"fixed": [["@lagon/runtime", "@lagon/js-runtime"]],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch"
}
"updateInternalDependencies": "patch",
"privatePackages": { "version": true, "tag": true }
}
5 changes: 5 additions & 0 deletions .changeset/flat-rabbits-shake.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@lagon/serverless': minor
---

Release container image
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ dist/
.env
.eslintcache
crates/serverless/deployments/
docker/
70 changes: 70 additions & 0 deletions .github/workflows/container.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Container

on:
push:
branches:
- main
tags:
- '@lagon/serverless@*'
pull_request:

env:
DOCKER_HUB_USER: lagonapp

jobs:
create-container-image:
name: Create "${{matrix.image}}" container image
runs-on: ubuntu-latest
strategy:
matrix:
# image: [serverless, dashboard]
image: [serverless]
steps:
- name: Checkout 🛎️
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
${{ env.DOCKER_HUB_USER }}/${{matrix.image}}
ghcr.io/${{ github.repository_owner }}/${{matrix.image}}
tags: |
type=ref,event=tag,prefix=@lagon/${{matrix.image}}@
type=ref,event=pr
type=raw,value=next,enable={{is_default_branch}}
- name: Login to ghcr.io registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Login to Docker Hub
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
with:
username: ${{ env.DOCKER_HUB_USER }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v4
if: "!startsWith(github.ref, 'refs/tags/') || contains(github.ref, matrix.image)" # only execute if not tag or tag with specific matrix image
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
file: docker/Dockerfile.${{matrix.image}}
platforms: ${{ github.event_name == 'pull_request' && 'linux/amd64' || 'linux/amd64,linux/arm64' }} # only build for amd64 on PRs to speed up CI job
2 changes: 1 addition & 1 deletion docker/Dockerfile → docker/Dockerfile.serverless
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ FROM chef AS builder
COPY --from=planner /app/recipe.json recipe.json
RUN cargo chef cook --release --recipe-path recipe.json
COPY . .
COPY --from=js-runtime /app/dist/index.js /app/crates/js-runtime/dist
COPY --from=js-runtime /app/dist/index.js /app/crates/runtime_isolate/runtime.js
RUN cargo build --release --bin lagon-serverless

FROM debian:bullseye-slim AS runtime
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"build": "turbo build --continue --filter=!@lagon/example-*",
"lint": "turbo lint --continue",
"typecheck": "turbo typecheck --continue",
"docker:build": "docker build -t lagon/serverless -f docker/Dockerfile .",
"docker:build": "docker build -t lagon/serverless -f docker/Dockerfile.serverless .",
"docker:start": "docker run --rm -p 4000:4000 --env-file crates/serverless/.env lagon/serverless",
"release": "pnpm build --filter=@lagon/astro --filter=@lagon/remix && pnpm changeset publish"
},
Expand Down

4 comments on commit dd2b64e

@vercel
Copy link

@vercel vercel bot commented on dd2b64e May 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

www – ./www

www-git-main-lagon.vercel.app
lagon.dev
www-lagon.vercel.app
lagon.app

@vercel
Copy link

@vercel vercel bot commented on dd2b64e May 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

storybook – ./packages/ui

storybook-lagon.vercel.app
storybook-swart-eight.vercel.app
storybook-git-main-lagon.vercel.app
ui.lagon.app

@vercel
Copy link

@vercel vercel bot commented on dd2b64e May 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

docs – ./packages/docs

lagon-docs.vercel.app
docs-lagon.vercel.app
docs.lagon.app
docs-git-main-lagon.vercel.app

@vercel
Copy link

@vercel vercel bot commented on dd2b64e May 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

dashboard – ./packages/dashboard

dash.lagon.app
dashboard-lagon.vercel.app
dashboard-git-main-lagon.vercel.app

Please sign in to comment.