Skip to content

Commit

Permalink
ci: Deploy (#40)
Browse files Browse the repository at this point in the history
  • Loading branch information
ddeboer authored Dec 6, 2023
1 parent 219e0c7 commit 2dc8fcc
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.github/
node_modules/
build/
output/
49 changes: 49 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Build app and update Docker image

on:
push:
branches:
- main

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set variables
id: vars
run: |
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
echo "::set-output name=docker_image::ghcr.io/netwerk-digitaal-erfgoed/dataset-knowledge-graph"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to Docker registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.CONTAINER_REGISTRY_TOKEN }}

- name: Build and push image to registry
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: |
${{ steps.vars.outputs.docker_image }}:${{ steps.vars.outputs.sha_short }}
${{ steps.vars.outputs.docker_image }}:latest
- uses: digitalocean/action-doctl@v2
with:
token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}

- name: Store DigitalOcean credentials
run: doctl kubernetes cluster kubeconfig save nde

- name: Run
run: |
kubectl create job --from=cronjob/dataset-knowledge-graph dataset-knowledge-graph-run
19 changes: 19 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
FROM node:lts-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN NODE_ENV=production npm run compile

FROM node:lts-alpine
LABEL org.opencontainers.image.source = "https://github.com/netwerk-digitaal-erfgoed/dataset-knowledge-graph"
ENV NODE_ENV=production
WORKDIR /app/
COPY package*.json ./
RUN npm ci
COPY --from=build /app/build /app/build
COPY --from=build /app/queries /app/queries
RUN mkdir /app/output && \
chown node /app/output
USER node
CMD ["npm", "start"]

0 comments on commit 2dc8fcc

Please sign in to comment.