# version format
version: '{build}'
deploy: on

# branches to build
branches:
  # whitelist
  only:
    - master

# Do not build on tags (GitHub, Bitbucket, GitLab, Gitea)
skip_tags: true

# Maximum number of concurrent jobs for the project
max_jobs: 1
clone_depth: 1

# Build worker image (VM template)
build_cloud: Docker

environment:
  docker_image: node:16-alpine
  npm_config_cache: /appveyor/projects/cache

build_script:
  - sh: |
      ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2
      chown -R node:node /appveyor/projects
      chmod -R 777 /appveyor/projects
      npm install
      npm list --all

test_script:
  - sh: |
      npm run test:linux

on_success:
  - sh: |
      apk add curl jq
      if [ $? -eq 0 ]; then
        echo "Finished installling curl and jq"
      else
        exit 1
      fi
      CURR_VER=$(cat package.json | jq -r .version)
      echo "Checking https://git.nfp.is/api/v1/repos/$APPVEYOR_REPO_NAME/releases for version v${CURR_VER}"
      curl -s -X GET -H "Authorization: token $deploytoken" https://git.nfp.is/api/v1/repos/$APPVEYOR_REPO_NAME/releases | grep -o "\"name\"\:\"v${CURR_VER}\"" > /dev/null

      if [ $? -eq 0 ] ; then
        echo "Release already exists, nothing to do.";
      else
        ./7zas a -mx9 "${CURR_VER}_build-sc.7z" package.json index.mjs api
        echo "Creating release on gitea"
        RELEASE_RESULT=$(curl \
          -X POST \
          -H "Authorization: token $deploytoken" \
          -H "Content-Type: application/json" \
          https://git.nfp.is/api/v1/repos/$APPVEYOR_REPO_NAME/releases \
          -d "{\"tag_name\":\"v${CURR_VER}\",\"name\":\"v${CURR_VER}\",\"body\":\"Automatic release from Appveyor from ${APPVEYOR_REPO_COMMIT} :\n\n${APPVEYOR_REPO_COMMIT_MESSAGE}\"}")
        RELEASE_ID=$(echo $RELEASE_RESULT | jq -r .id)
        echo "Adding ${CURR_VER}_build-sc.7z to release ${RELEASE_ID}"
        curl \
          -X POST \
          -H "Authorization: token $deploytoken" \
          -F "attachment=@${CURR_VER}_build-sc.7z" \
          https://git.nfp.is/api/v1/repos/$APPVEYOR_REPO_NAME/releases/$RELEASE_ID/assets

        echo "Deplying to production"
        curl -X POST http://192.168.93.50:4010/update/storageupload
      fi

# on build failure
on_failure:
  - sh: echo on_failure
