@atlas-engine/atlasdownloadsite

A static website, which shows download links to all the Atlas products.

Usage no npm install needed!

<script type="module">
  import atlasEngineAtlasdownloadsite from 'https://cdn.skypack.dev/@atlas-engine/atlasdownloadsite';
</script>

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.

Wen kann ich auf das Projekt ansprechen?

Verwandte Projekte