# 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:
  APPVEYOR_SSH_KEY: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBRMxhawMlUlQ8l4pOaeHsZl8XDO54WQngkYM1U/XB4m samsyn\jonatan@JonatanAMD
  docker_image: node:16-alpine
  npm_config_cache: /appveyor/projects/cache

test_script:
  - sh: |
      mkdir /lib64
      ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
      chmod -R 777 /appveyor/projects
      npm install
      if npm run test -- --ignore-only; then
        exit 1
      fi
      if npm run test:integration -- --ignore-only; then
        exit 1
      fi

artifacts:
  - path: ./*_sc-core.7z

# on successful build
on_success:
  - sh: |
      if apk add curl jq; then
        echo "Finished installling curl and jq"
      else
        exit 1
      fi
      CURR_VER=$(cat package.json | jq -r .version)
      if 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; then
        echo "Release already exists, nothing to do.";
      else
        ./test/7zas a -mx9 "${CURR_VER}_sc-core.7z" package.json index.mjs cli.mjs core bin
        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}_sc-core.7z to release ${RELEASE_ID}"
        curl \
          -X POST \
          -H "Authorization: token $deploytoken" \
          -F "attachment=@${CURR_VER}_sc-core.7z" \
          https://git.nfp.is/api/v1/repos/$APPVEYOR_REPO_NAME/releases/$RELEASE_ID/assets
        echo '//registry.npmjs.org/:_authToken=${npmtoken}' > ~/.npmrc
        echo "Publishing new version to npm"
        npm publish
      fi
# - sh: |
#     YELLOW='\033[0;33m'
#     NC='\033[0m'
#     LOCK_FILE="${HOME}/build.lock"
#     export APPVEYOR_SSH_BLOCK=true
#     touch "${LOCK_FILE}"
#     echo -e "Build paused. To resume it, open a bash session to run '${YELLOW}rm \"${LOCK_FILE}\"${NC}' command."
#     while [ -f "${LOCK_FILE}" ]; do
#       sleep 1
#     done

# on build failure
on_failure:
  - sh: echo on_failure
