name: Deploy dev.opencatalogi.nl to GitHub Pages

env: # Change these to your preferences any image url can also be a base encoded image
  GITHUB_PAGES_BRANCH: gh-pages

  GITHUB_REPOSITORY_NAME: ${{ github.event.repository.name }}
  # options: "true" | "false"
  USE_GITHUB_REPOSITORY_NAME_AS_PATH_PREFIX: "false"

  SHOW_THEME_SWITCHER: "false"

  ME_URL: "https://api.opencatalogi.nl/api/users/me"
  API_URL: "https://api.opencatalogi.nl/api"
  NEXTCLOUD_API_URL: "https://nextcloud.test.commonground.nu/index.php/apps/opencatalogi/api"
  ADMIN_URL: "https://api.opencatalogi.nl/admin"
  BASE_URL: "https://api.opencatalogi.nl"
  FRONTEND_URL: "https://api.opencatalogi.nl"
  LOGIN_REDIRECT: "vault"
  ADMIN_DASHBOARD_URL: "https://admin.opencatalogi.nl"

  NL_DESIGN_THEME_CLASSNAME: opencatalogi-theme
  # GITHUB_ORGANIZATION_URL: ""
  FAVICON_URL: "https://dev.opencatalogi.nl/static/logo_OpenCatalogi-8b1b0a001c3f37dae4d3f69b5964ec72.png"
  PAGE_TITLE: "DevOpenCatalogi"

  HEADER_LOGO_URL: "https://dev.opencatalogi.nl/static/logo_OpenCatalogi-8b1b0a001c3f37dae4d3f69b5964ec72.png"
  HEADER_SHOW_LOGIN: "false"
  HEADER_CONTENT: https://raw.githubusercontent.com/OpenCatalogi/web-app/main/pwa/src/templates/templateParts/header/HeaderContent.json

  # JUMBOTRON_TITLE: ""
  JUMBOTRON_SUBTITLE: "false"
  # JUMBOTRON_DESCRIPTION: ""


  FOOTER_SHOW_CREATOR: "true"
  FOOTER_LOGO_URL: "https://dev.opencatalogi.nl/static/logo_OpenCatalogi-8b1b0a001c3f37dae4d3f69b5964ec72.png"
  FOOTER_CONTENT: "https://raw.githubusercontent.com/OpenCatalogi/web-app/25995205e1dbb043822d1c58c5c23f8e6f77ff7e/pwa/src/templates/templateParts/footer/FooterContent.json"
  # options: "heading-1" | "heading-2" | "heading-3" | "heading-4" | "heading-5"
  # FOOTER_CONTENT_HEADER: ""

  FILTER_FORKS: "true"
  # options: "false" | "OpenCatalogi" | "Commonground", default = "OpenCatalogi"
  FILTER_RATING: "OpenCatalogi"
  # options: "OpenCatalogi: (0-24)" | "Commonground": (0-4), default: "0"
  FILTER_RATING_DEFAULT: "16"
  # FILTER_LAYER: " "
  # FILTER_UPL: " "
  # FILTER_ORGANISATION: " "
  # FILTER_CATEGORY: " "
  # FILTER_PLATFORMS: " "
  FILTER_STATUS: "stable"
  # FILTER_MAINTENANCE_TYPES: " "
  # FILTER_LICENSE: " "
  # FILTER_BUSINESS_FUNCTIONS: " "
  # FILTER_SOFTWARE_TYPE: " "
  # FILTER_BUSINESS_SERVICES: " "
  # FILTER_REFERENCE_COMPONENTS: " "

  OPTIONAL_START_PAGE: "false"
  ENV_VARS_SET: "true"

on:
  push:
    branches:
      - never

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Get the Open Catalogi Web APP
        uses: actions/checkout@v2
        with:
          repository: OpenCatalogi/web-app
          ref: development

      # With special thanxs to https://github.com/SpicyPizza/create-envfile
      - name: Make envfile
        uses: SpicyPizza/create-envfile@v2.0
        with:
          envkey_GATSBY_GITHUB_REPOSITORY_NAME: ${{ env.GITHUB_REPOSITORY_NAME }}
          envkey_GATSBY_USE_GITHUB_REPOSITORY_NAME_AS_PATH_PREFIX: ${{ env.USE_GITHUB_REPOSITORY_NAME_AS_PATH_PREFIX }}
          envkey_GATSBY_SHOW_THEME_SWITCHER: ${{ env.SHOW_THEME_SWITCHER }}
          envkey_GATSBY_ME_URL: ${{ env.ME_URL }}
          envkey_GATSBY_API_URL: ${{ env.API_URL }}
          envkey_GATSBY_NEXTCLOUD_API_URL: ${{ env.NEXTCLOUD_API_URL }}
          envkey_GATSBY_ADMIN_URL: ${{ env.ADMIN_URL }}
          envkey_GATSBY_BASE_URL: ${{ env.BASE_URL }}
          envkey_GATSBY_FRONTEND_URL: ${{ env.FRONTEND_URL }}
          envkey_GATSBY_LOGIN_REDIRECT: ${{ env.LOGIN_REDIRECT }}
          envkey_GATSBY_ADMIN_DASHBOARD_URL: ${{ env.ADMIN_DASHBOARD_URL }}
          envkey_GATSBY_NL_DESIGN_THEME_CLASSNAME: ${{ env.NL_DESIGN_THEME_CLASSNAME }}
          # envkey_GATSBY_GITHUB_ORGANIZATION_URL: ${{ env.GITHUB_ORGANIZATION_URL }}
          envkey_GATSBY_FAVICON_URL: ${{ env.FAVICON_URL }}
          envkey_GATSBY_PAGE_TITLE: ${{ env.PAGE_TITLE }}
          envkey_GATSBY_HEADER_LOGO_URL: ${{ env.HEADER_LOGO_URL }}
          envkey_GATSBY_HEADER_SHOW_LOGIN: ${{ env.HEADER_SHOW_LOGIN }}
          envkey_GATSBY_HEADER_CONTENT: ${{ env.HEADER_CONTENT }}
          # envkey_GATSBY_JUMBOTRON_TITLE: ${{ env.JUMBOTRON_TITLE }}
          envkey_GATSBY_JUMBOTRON_SUBTITLE: ${{ env.JUMBOTRON_SUBTITLE }}
          # envkey_GATSBY_JUMBOTRON_DESCRIPTION : ${{ env.JUMBOTRON_DESCRIPTION }}
          envkey_GATSBY_FOOTER_SHOW_CREATOR: ${{ env.FOOTER_SHOW_CREATOR }}
          envkey_GATSBY_FOOTER_LOGO_URL: ${{ env.FOOTER_LOGO_URL }}
          envkey_GATSBY_FOOTER_CONTENT: ${{ env.FOOTER_CONTENT }}
          # envkey_GATSBY_FOOTER_CONTENT_HEADER : ${{ env.FOOTER_CONTENT_HEADER }}
          envkey_GATSBY_FILTER_FORKS: ${{ env.FILTER_FORKS }}
          envkey_GATSBY_FILTER_RATING: ${{ env.FILTER_RATING }}
          envkey_GATSBY_FILTER_RATING_DEFAULT: ${{ env.FILTER_RATING_DEFAULT }}
          # envkey_GATSBY_FILTER_LAYER: ${{ env.FILTER_LAYER }}
          # envkey_GATSBY_FILTER_UPL: ${{ env.FILTER_UPL }}
          # envkey_GATSBY_FILTER_ORGANISATION: ${{ env.FILTER_ORGANISATION }}
          # envkey_GATSBY_FILTER_CATEGORY: ${{ env.FILTER_CATEGORY }}
          # envkey_GATSBY_FILTER_PLATFORMS: ${{ env.FILTER_PLATFORMS }}
          envkey_GATSBY_FILTER_STATUS: ${{ env.FILTER_STATUS }}
          # envkey_GATSBY_FILTER_MAINTENANCE_TYPES: ${{ env.FILTER_MAINTENANCE_TYPES }}
          # envkey_GATSBY_FILTER_LICENSE: ${{ env.FILTER_LICENSE }}
          # envkey_GATSBY_FILTER_BUSINESS_FUNCTIONS: ${{ env.FILTER_BUSINESS_FUNCTIONS }}
          # envkey_GATSBY_FILTER_SOFTWARE_TYPE: ${{ env.FILTER_SOFTWARE_TYPE }}
          # envkey_GATSBY_FILTER_BUSINESS_SERVICES: ${{ env.FILTER_BUSINESS_SERVICES }}
          # envkey_GATSBY_FILTER_REFERENCE_COMPONENTS: ${{ env.FILTER_REFERENCE_COMPONENTS }}
          envkey_GATSBY_OPTIONAL_START_PAGE: ${{ env.OPTIONAL_START_PAGE }}
          envkey_GATSBY_ENV_VARS_SET: ${{ env.ENV_VARS_SET }}
          directory: pwa/static
          file_name: .env.production
          fail_on_empty: true
          sort_keys: false

      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: 18

      - name: Install dependencies
        run: cd pwa && npm install

      - name: Install parcel/watcher
        run: cd pwa && npm install @parcel/watcher

      - name: Remove old Gatsby cache
        run: rm -rf pwa/.cache

      - name: Build application
        run: cd pwa && npm run build

      - name: Deploy to GitHub Pages
        uses: JamesIves/github-pages-deploy-action@4.1.0
        with:
          branch: ${{ env.GITHUB_PAGES_BRANCH }}
          folder: pwa/public