Skip to content
This repository has been archived by the owner on Nov 20, 2024. It is now read-only.

Release 2024-09-30 #132

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 125 additions & 0 deletions .github/workflows/deploy-to-ionos.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# Please do not edit this file.
# More information under https://docs.ionos.space/docs/github-actions-customization/
# version: 2022-07-21

name: "Deploy Now: Deploy to IONOS"

on:
workflow_dispatch:
inputs:
version:
required: true
type: string
project-id:
required: true
type: string
branch-id:
required: true
type: string
deployment-ids:
require: true
type: string
push:
path:
- ./.github/workflows/deploy-to-ionos.yaml

concurrency: ${{ github.ref }}

jobs:
deploy-to-ionos:
if: ${{ github.event_name == 'workflow_dispatch' }}
runs-on: ubuntu-latest
permissions:
actions: read
strategy:
matrix:
deployment-id: ${{ fromJson(inputs.deployment-ids) }}
steps:
- name: Update deployment status
uses: ionos-deploy-now/project-action@v1
with:
api-key: ${{ secrets.IONOS_API_KEY }}
service-host: api-eu.ionos.space
project-id: ${{ inputs.project-id }}
branch-id: ${{ inputs.branch-id }}
deployment-id: ${{ matrix.deployment-id }}
action: update-status
status: in_progress

- name: Retrieve stored deployment
uses: ionos-deploy-now/artifact-action@v1
with:
api-key: ${{ secrets.IONOS_API_KEY }}
service-host: api-eu.ionos.space
project-id: ${{ inputs.project-id }}
branch-id: ${{ inputs.branch-id }}
version: ${{ inputs.version }}
action: download

- name: Fetch deployment info
uses: ionos-deploy-now/project-action@v1
id: deployment
with:
api-key: ${{ secrets.IONOS_API_KEY }}
service-host: api-eu.ionos.space
project-id: ${{ inputs.project-id }}
branch-id: ${{ inputs.branch-id }}
deployment-id: ${{ matrix.deployment-id }}
action: retrieve-info

- name: Render templates
uses: ionos-deploy-now/template-renderer-action@v2
id: template
with:
deployment-id: ${{ matrix.deployment-id }}
data: "[${{ steps.deployment.outputs.template-variables }}, ${{ toJson(secrets) }}]"
input-directory: deployment
output-directory: deployment
intermediate-data-file: deployment/.template-renderer-data

- name: Render real site-url to all files
run: |
for file in `grep -rl 'https://IONOS_DEPLOY_NOW_SITE_URL' .`; do
sed -i $file -e 's|https://IONOS_DEPLOY_NOW_SITE_URL|${{ fromJson(steps.deployment.outputs.info).site-url }}|g'
done
- name: Render SSH user secret name
run: echo SSH_USERNAME_SECRET=IONOS_DEPLOYMENT_`echo ${{ matrix.deployment-id }} | tr '[:lower:]' '[:upper:]' | tr '-' '_'`_SSH_USERNAME >> $GITHUB_ENV

- name: Deploy to IONOS
uses: ionos-deploy-now/deploy-to-ionos-action@v2
with:
api-key: ${{ secrets.IONOS_API_KEY }}
service-host: api-eu.ionos.space
project-id: ${{ inputs.project-id }}
branch-id: ${{ inputs.branch-id }}
deployment-id: ${{ matrix.deployment-id }}
deployment-info: ${{ steps.deployment.outputs.info }}
ssh-user: ${{ secrets[env.SSH_USERNAME_SECRET] }}
ssh-key: ${{ secrets.IONOS_SSH_KEY }}

- name: Update deployment status
if: ${{ always() }}
uses: ionos-deploy-now/project-action@v1
with:
api-key: ${{ secrets.IONOS_API_KEY }}
service-host: api-eu.ionos.space
project-id: ${{ inputs.project-id }}
branch-id: ${{ inputs.branch-id }}
deployment-id: ${{ matrix.deployment-id }}
action: update-status
status: ${{ job.status }}

notify-deployment-finished:
needs: deploy-to-ionos
if: ${{ github.event_name == 'workflow_dispatch' && always() }}
runs-on: ubuntu-latest
steps:
- name: Notify all deployments finished
uses: ionos-deploy-now/project-action@v1
with:
api-key: ${{ secrets.IONOS_API_KEY }}
service-host: api-eu.ionos.space
project-id: ${{ inputs.project-id }}
branch-id: ${{ inputs.branch-id }}
action: set-deployments-finished
54 changes: 54 additions & 0 deletions .github/workflows/rsv-dossier-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# To better understand this file read this:
# https://docs.ionos.space/docs/github-actions-customization/

name: "Deploy Now: Execute Build"

on:
workflow_call:
inputs:
site-url:
required: true
type: string
branch-id:
required: true
type: string

env:
DEPLOYMENT_FOLDER: dist

jobs:
# Please do not rename this job
build-project:
name: build rsv-dossier
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: v22.x

- name: Build Node assets
env:
CI: true
SITE_URL: ${{ inputs.site-url }}
run: |
npm ci
npm run build

# Please do not touch the following action
- name: Store deployment content
uses: ionos-deploy-now/artifact-action@v1
with:
api-key: ${{ secrets.IONOS_API_KEY }}
service-host: api-eu.ionos.space
project-id: 1e6f7dce-a33d-4388-abef-b97307d72c19
branch-id: ${{ inputs.branch-id }}
version: ${{ github.sha }}
folder: ${{ env.DEPLOYMENT_FOLDER }}
config-file: .deploy-now/rsv-dossier/config.yaml
action: upload
55 changes: 55 additions & 0 deletions .github/workflows/rsv-dossier-orchestration.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Please do not edit this file.
# Build steps can be customized in the rsv-dossier-build.yaml.
# More information under https://docs.ionos.space/docs/github-actions-customization/
# version: 2022-07-21

name: "Deploy Now: Orchestration"
run-name: "Deploy Now: Build rsv-dossier · ${{ github.event.head_commit.message || format('Triggered by {0}', github.triggering_actor) }}"

on:
- push
- workflow_dispatch

jobs:
retrieve-project:
name: check readiness
runs-on: ubuntu-latest
outputs:
deployment-enabled: ${{ fromJson(steps.project.outputs.info).deployment-enabled }}
branch-id: ${{ fromJson(steps.project.outputs.info).branch-id }}
steps:
- name: Fetch project data
uses: ionos-deploy-now/project-action@v1
id: project
with:
api-key: ${{ secrets.IONOS_API_KEY }}
service-host: api-eu.ionos.space
project-id: 1e6f7dce-a33d-4388-abef-b97307d72c19
action: retrieve-info


build:
name: build
needs: retrieve-project
if: ${{ needs.retrieve-project.outputs.deployment-enabled == 'true' }}
uses: ./.github/workflows/rsv-dossier-build.yaml
with:
site-url: https://IONOS_DEPLOY_NOW_SITE_URL
branch-id: ${{ needs.retrieve-project.outputs.branch-id }}
secrets: inherit

deploy:
name: trigger deployment
needs:
- retrieve-project
- build
runs-on: ubuntu-latest
steps:
- name: Dispatch deployment(s)
uses: ionos-deploy-now/project-action@v1
with:
api-key: ${{ secrets.IONOS_API_KEY }}
service-host: api-eu.ionos.space
project-id: 1e6f7dce-a33d-4388-abef-b97307d72c19
branch-id: ${{ needs.retrieve-project.outputs.branch-id }}
action: dispatch-deployments
Loading