name: Changesets

on:
  schedule:
    - cron: '0 0 * * *'

  push:
    branches:
      - master

env:
  CI: true
  PNPM_CACHE_FOLDER: .pnpm-store

jobs:
  # Update package versions from changesets.
  version:
    timeout-minutes: 14
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/master' && github.repository == 'verdaccio/verdaccio'
    steps:
      - name: checkout code repository
        uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3
        with:
          fetch-depth: 0

      - name: setup node.js
        uses: actions/setup-node@969bd2663942d722d85b6a8626225850c2f7be4b # tag=v3
        with:
          node-version: 14
          registry-url: 'https://registry.npmjs.org'
        env:
          NODE_AUTH_TOKEN: ${{ secrets.REGISTRY_AUTH_TOKEN }}

      - name: install pnpm
        run: npm i pnpm@6.32.15 -g
        env:
          NODE_AUTH_TOKEN: ${{ secrets.REGISTRY_AUTH_TOKEN }}

      - name: setup pnpm config
        run: pnpm config set store-dir $PNPM_CACHE_FOLDER
      - name: setup pnpm config registry
        run: pnpm config set registry https://registry.npmjs.org

      - name: install dependencies
        run: pnpm install
        env:
          NODE_AUTH_TOKEN: ${{ secrets.REGISTRY_AUTH_TOKEN }}
      - name: crowdin download
        env:          
          CROWDIN_VERDACCIO_API_KEY: ${{ secrets.CROWDIN_VERDACCIO_API_KEY }}
          CONTEXT: production
        run: pnpm crowdin:download       
      - name: build
        run: pnpm build

      - name: create versions
        uses: changesets/action@master
        with:
          version: pnpm ci:version
          commit: 'chore: update versions'
          title: 'chore: update versions'
          publish: pnpm ci:publish
          createGithubReleases: false
          setupGitUser: false
        env:
          GITHUB_TOKEN: ${{ secrets.CHANGESET_RELEASE_TOKEN }}
          NPM_TOKEN: ${{ secrets.REGISTRY_AUTH_TOKEN }}
          NODE_AUTH_TOKEN: ${{ secrets.REGISTRY_AUTH_TOKEN }}
          NPM_CONFIG_REGISTRY: https://registry.npmjs.org