Skip to content

Commit

Permalink
Merge pull request #6 from terrestris/deploy
Browse files Browse the repository at this point in the history
ci: Deploy-chain
  • Loading branch information
FritzHoing authored May 7, 2024
2 parents 3e4fc16 + ce9c424 commit cb65432
Show file tree
Hide file tree
Showing 9 changed files with 1,524 additions and 43 deletions.
136 changes: 136 additions & 0 deletions .github/workflows/gh-pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@

name: Deploy to GitHub Pages

on:
push:
branches:
- main

env:
DOCKER_REGISTRY: docker-public.terrestris.de/terrestris

jobs:
deploy:
name: Deploy to GitHub Pages
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm

- name: Install dependencies
run: npm ci
- name: Build website
run: npm run build

# Popular action to deploy to GitHub Pages:
# Docs: /~https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
# Build output to publish to the `gh-pages` branch:
publish_dir: ./build
# The following lines assign commit authorship to the official
# GH-Actions bot for deploys to `gh-pages` branch:
# /~https://github.com/actions/checkout/issues/13#issuecomment-724415212
# The GH actions bot is used by default if you didn't specify the two fields.
# You can swap them out with your own user credentials.
user_name: github-actions[bot]
user_email: 41898282+github-actions[bot]@users.noreply.github.com

create_and_push_image:
runs-on: ubuntu-latest
steps:
- name: Checkout sources 🔰
uses: actions/checkout@v4

- name: Setup Node.js 🧮
uses: actions/setup-node@v4
with:
node-version: 20

- name: Cache Node.js modules 💾
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-node-
${{ runner.OS }}-
- name: Install dependencies ⏬
run: npm ci

- name: Semantic Release 🚀
uses: cycjimmy/semantic-release-action@v4
id: semantic
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
semantic_version: 23

- name: Login to Nexus ⌨️
uses: docker/login-action@v1
with:
registry: ${{ env.DOCKER_REGISTRY }}
username: ${{ secrets.NEXUS_USERNAME }}
password: ${{ secrets.NEXUS_PASSWORD }}

- name: Build shogun-gis-client-docs docker image (latest) 🏗️
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile.gis.client
tags: |
${{ env.DOCKER_REGISTRY }}/shogun-gis-client-docs:latest
load: true

- name: Build shogun-gis-client-docs docker image (version) 🏗️
if: steps.semantic.outputs.new_release_published == 'true'
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile.gis.client
tags: |
${{ env.DOCKER_REGISTRY }}/shogun-gis-client-docs:${{ steps.semantic.outputs.new_release_version }}
load: true

- name: Push shogun-gis-client-docs docker image to Nexus (latest) 📠
run: |
docker push ${{ env.DOCKER_REGISTRY }}/shogun-gis-client-docs:latest
- name: Push shogun-gis-client-docs docker image to Nexus (version) 📠
if: steps.semantic.outputs.new_release_published == 'true'
run: |
docker push ${{ env.DOCKER_REGISTRY }}/shogun-gis-client-docs:${{ steps.semantic.outputs.new_release_version }}
- name: Build shogun-admin-client-docs image (latest) 🏗️
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile.admin.client
tags: |
${{ env.DOCKER_REGISTRY }}/shogun-admin-client-docs:latest
load: true

- name: Build shogun-admin-client-docs docker image (version) 🏗️
if: steps.semantic.outputs.new_release_published == 'true'
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile.admin.client
tags: |
${{ env.DOCKER_REGISTRY }}/shogun-admin-client-docs:${{ steps.semantic.outputs.new_release_version }}
load: true

- name: Push shogun-admin-client-docs docker image to Nexus (latest) 📠
run: |
docker push ${{ env.DOCKER_REGISTRY }}/shogun-admin-client-docs:latest
- name: Push shogun-admin-client-docs docker image to Nexus (version) 📠
if: steps.semantic.outputs.new_release_published == 'true'
run: |
docker push ${{ env.DOCKER_REGISTRY }}/shogun-admin-client-docs:${{ steps.semantic.outputs.new_release_version }}
39 changes: 0 additions & 39 deletions .github/workflows/hg-pages.yml

This file was deleted.

63 changes: 63 additions & 0 deletions .releaserc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
{
"branches": [
"main"
],
"plugins": [
[
"@semantic-release/commit-analyzer",
{
"releaseRules": [
{"type": "breaking", "release": "major"},
{"type": "ci", "release": false},
{"type": "config", "release": "patch"},
{"type": "norelease", "release": false},
{"type": "refactor", "release": "patch"},
{"type": "style", "release": "patch"},
{"type": "test", "release": false}
]
}
],
[
"@semantic-release/release-notes-generator",
{
"preset": "conventionalcommits",
"presetConfig": {
"header": "Changelog of shogun-docs",
"types": [
{"type": "breaking", "section": "Breaking changes"},
{"type": "chore", "section": "Dependencies"},
{"type": "ci", "section": "Changes in configuration"},
{"type": "config", "section": "Changes in configuration"},
{"type": "docs", "hidden": true},
{"type": "feat", "section": "Features"},
{"type": "fix", "section": "Bugfixes"},
{"type": "norelease", "hidden": true },
{"type": "perf", "hidden": true},
{"type": "refactor", "hidden": true},
{"type": "style", "section": "Changes in layout"},
{"type": "test", "hidden": true}
]
}
}
],
[
"@semantic-release/npm",
{
"npmPublish": false
}
],
"@semantic-release/changelog",
[
"@semantic-release/git",
{
"assets": [
"CHANGELOG.md",
"package.json",
"package-lock.json"
],
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}
],
"@semantic-release/github"
]
}
7 changes: 5 additions & 2 deletions Dockerfile → Dockerfile.admin.client
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:16.15.1-alpine as build
FROM node:20.12.1-alpine3.19 AS build

WORKDIR /app

Expand All @@ -8,10 +8,13 @@ COPY package-lock.json ./
RUN npm ci

COPY . ./
RUN rm -rf /app/docs/gis-client

COPY docusaurus.admin.config.js ./docusaurus.config.js

RUN npm run build

FROM nginx:1.24.0-alpine
FROM nginx:1.25.3-alpine-slim

COPY --from=build /app/build /usr/share/nginx/html

Expand Down
23 changes: 23 additions & 0 deletions Dockerfile.gis.client
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
FROM node:20.12.1-alpine3.19 AS build

WORKDIR /app

COPY package.json ./
COPY package-lock.json ./

RUN npm ci

COPY . ./
RUN rm -rf /app/docs/admin-client

COPY docusaurus.gis.config.js ./docusaurus.config.js

RUN npm run build

FROM nginx:1.25.3-alpine-slim

COPY --from=build /app/build /usr/share/nginx/html

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]
Loading

0 comments on commit cb65432

Please sign in to comment.