README
ATLAS DOWNLOAD SITE
Automatisiert generierte Download-Seite für alle Produkte des Unternehmens unter Berücksichtigung aller Produktversionen und Releasezyklen (Typescript/Handlebars/HTML/CSS).
Was sind die Ziele dieses Projekts?
Es soll eine statische Webseite erstellt werden, die automatisiert bei jedem Release eines Produktes, einen neuen Eintrag mit der Version und den jeweiligen Download-Links für das Produkt zur Verfügung stellt.
Relevante URLs
Wie kann ich das Projekt aufsetzen?
Voraussetzungen
- Node
>= 14.2.0
Setup/Installation
npm install
Wie kann ich das Projekt benutzen?
Github Actions
Damit die Download-Seiten bei Release automatisiert erstellt und auf Azure hochgeladen werden, muss jeweils folgende GitHub Action für die Produkte Engine, Studio, Authority, CLI, UI, TSClient, .NETClient und PythonClient eingefügt werden.
on:
release:
types: [published, unpublished]
jobs:
upload_atlas_download_sites_to_azure:
name: Generate Download Site with Atlas Products and upload them to Azure
runs-on: ubuntu-20.04
steps:
- name: "Use node"
uses: actions/setup-node@v2
with:
node-version: '14'
- name: "Install Atlas Download Site plugin"
run: npm i -g @atlas-engine/atlasdownloadsite
- name: "Create static html files in outputfolder"
run: atlasdownloadsite
env:
GITHUB_TOKEN: ${{ secrets.GH_CI_USER_TOKEN }}
- name: Log into Azure
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_ATLAS_PLATFORM_CI_CREDENTIALS }}
- name: Upload build artifacts
uses: azure/cli@v1
with:
azcliversion: 2.14.1
inlineScript: |
az storage blob upload-batch \
--account-name 5mindsproducts \
--auth-mode login \
--destination '$web' \
--source output
Lokal
Für lokales Testen wird ein Github-Token gebraucht mit Zugriff auf die Atlas-Engine-Organisation. Der GitHub-Token kann unter https://github.com/settings/tokens angelegt werden und benötigt den Scope "repo - Full control of private repositories".
Zum Ausführen des Projektes:
npm run build && GITHUB_TOKEN='<GitHub-Token>' npm start
Als Beispiel:
npm run build && GITHUB_TOKEN=$(cat ~/.github-token) npm start
Zum Durchführen aller Tests:
GITHUB_TOKEN='<GitHub-Token>' npm run test
Zum Durchführen der Unit-/Integration Tests:
GITHUB_TOKEN='<GitHub-Token>' npm run test:integration
Zum Durchführen der E2E Tests:
npm run test:e2e
Änderungen hochladen
Die GitHub-Action-Runner beziehen das Skript von npmjs. Damit Änderungen an diesem Skript wirksam werden, muss dieses erst auf npmjs hochgeladen werden. Hierzu die Version in der package.json hochziehen und den Befehl npm publish
in der Konsole ausführen.
Was muss ich sonst noch wissen?
Dieses Projekt, sowie die entstandene DownloadSite ist nur für den internen Gebrauch gedacht. Die Zugangsinformationen für Azure und GitHub sind innerhalb der "atlas-engine"-Organisation unter den Secrets AZURE_ATLAS_PLATFORM_CI_CREDENTIALS und GH_CI_USER_TOKEN verfügbar.