Skip to content

Commit

Permalink
Merge pull request #8 from zazuko/docker
Browse files Browse the repository at this point in the history
Docker
  • Loading branch information
ludovicm67 authored Aug 19, 2024
2 parents 38c1c24 + f26a422 commit 704dbcd
Show file tree
Hide file tree
Showing 8 changed files with 1,636 additions and 5 deletions.
8 changes: 8 additions & 0 deletions .changeset/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Changesets

Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)

We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
15 changes: 15 additions & 0 deletions .changeset/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [],
"access": "restricted",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"privatePackages": {
"tag": true,
"version": true
},
"ignore": []
}
5 changes: 5 additions & 0 deletions .changeset/sour-crabs-judge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"clear-sparql-cache-endpoint": minor
---

First release
75 changes: 75 additions & 0 deletions .github/workflows/docker.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Build and push Docker image

on:
push:
branches:
- main
tags:
- "v*.*.*"

jobs:
docker:
runs-on: ubuntu-latest

permissions:
contents: read
packages: write
id-token: write

env:
DOCKER_IMAGE: ghcr.io/zazuko/clear-sparql-cache-endpoint

steps:
- name: Checkout
uses: actions/checkout@v4

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

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

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Docker meta
id: docker_meta
uses: docker/metadata-action@v5
with:
images: "${{ env.DOCKER_IMAGE }}"
tags: |
type=ref,event=branch
type=semver,prefix=v,pattern={{version}}
type=semver,prefix=v,pattern={{major}}.{{minor}}
type=semver,prefix=v,pattern={{major}}
type=sha
- name: Build and push Docker image
id: docker_build
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
platforms: |
linux/amd64
linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Sign the images with GitHub OIDC Token
env:
DIGEST: ${{ steps.docker_build.outputs.digest }}
TAGS: ${{ steps.docker_meta.outputs.tags }}
run: |
images=""
for tag in ${TAGS}; do
images+="${tag}@${DIGEST} "
done
cosign sign --yes ${images}
50 changes: 50 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Release

on:
push:
branches:
- main

concurrency: ${{ github.workflow }}-${{ github.ref }}

jobs:
release:
name: Release

runs-on: ubuntu-latest

permissions:
contents: write

steps:
# This allow GitHub Actions to trigger the jobs for tags if needed
- name: Generate token
id: generate_token
uses: tibdex/github-app-token@v2
with:
app_id: ${{ secrets.GH_APP_ID }}
private_key: ${{ secrets.GH_PRIVATE_KEY }}

- name: Checkout Repo
uses: actions/checkout@v4
with:
# This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
fetch-depth: 0
token: ${{ steps.generate_token.outputs.token }}

- uses: actions/setup-node@v4
with:
node-version: 22

- name: Install Dependencies
run: npm ci

- name: Create PR or create a new release
id: changesets
uses: changesets/action@v1
with:
publish: npm run release
commit: "chore: release"
title: "Merge to release"
env:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
10 changes: 10 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
FROM index.docker.io/library/node:22-alpine

WORKDIR /app

COPY package.json package-lock.json ./
RUN npm ci
COPY index.js ./
COPY lib/ ./lib/

CMD [ "npm", "run", "start" ]
Loading

0 comments on commit 704dbcd

Please sign in to comment.