pool:
  vmImage: "ubuntu-latest"

trigger:
  branches:
    include: ["main", "release/*"]
pr:
  branches:
    include: ["main", "release/*"]

steps:
  - task: NodeTool@0
    inputs:
      versionSpec: "16.x"

  - task: AzureKeyVault@1
    displayName: "Azure Key Vault: Get Secrets"
    inputs:
      azureSubscription: "vscode-builds-subscription"
      KeyVaultName: vscode
      SecretsFilter: "github-distro-mixin-password"

  - script: |
      set -e

      cat << EOF > ~/.netrc
      machine github.com
      login vscode
      password $(github-distro-mixin-password)
      EOF

      git config user.email "vscode@microsoft.com"
      git config user.name "VSCode"

      git remote add distro "https://github.com/$VSCODE_MIXIN_REPO.git"
      git fetch distro

      # Push main branch into oss/main
      git push distro origin/main:refs/heads/oss/main

      # Push every release branch into oss/release
      git for-each-ref --format="%(refname:short)" refs/remotes/origin/release/* | sed 's/^origin\/\(.*\)$/\0:refs\/heads\/oss\/\1/' | xargs git push distro

      git merge $(node -p "require('./package.json').distro")

    displayName: Sync & Merge Distro
