---
kind: pipeline
type: docker
name: irc-netcore-api

clone:
  disable: true

steps:
- name: clone-repo
  image: alpine/git
  pull: if-not-exists
  volumes:
    - name: irc-test-work
      path: /work
  commands:
    - if [ ! -e /work/netcore-repo/.git ]; then
        git clone -b Test.IRC http://192.168.3.68:2000/XCKJ/irc-netcore-api.git  /work/netcore-repo;
      else
        cd /work/netcore-repo;
        git pull;
      fi

    - |
      if [ ! -e Dockerfile ]; then
        echo 'FROM mcr.microsoft.com/dotnet/aspnet:6.0 
        EXPOSE 80 
        WORKDIR /app 
        COPY publish . 
        ENTRYPOINT ["dotnet", "IRaCIS.Core.API.dll"]' > /work/Dockerfile
      fi

- name: restore-publish
  image: mcr.microsoft.com/dotnet/sdk:6.0
  pull: if-not-exists
  depends_on:
    - clone-repo
  volumes:
    - name: nuget-packages
      path: /root/.nuget/packages
    - name: irc-test-work
      path: /work
  commands:
    - cd /work/netcore-repo/IRaCIS.Core.API
    - dotnet restore ./IRaCIS.Core.API.csproj
    - rm -rf /work/publish
    - cd  /work/netcore-repo/IRaCIS.Core.API
    - dotnet publish ./IRaCIS.Core.API.csproj -c Release --no-restore -o /work/publish

- name: docker-build
  image: docker
  pull: if-not-exists
  depends_on:
    - restore-publish
  commands:
    - cd /work
    - docker build -t test-irc:v${DRONE_BUILD_NUMBER} .
  volumes:
    - name: irc-test-work
      path: /work
    - name: dockersock
      path: /var/run/docker.sock

volumes:
  - name: nuget-packages
    host:
      path: /opt/cicd/nuget/packages
  - name: irc-test-work
    host:
      path: /opt/cicd/irc-test 
  - name: dockersock
    host:
      path: /var/run/docker.sock
      
trigger:
  branch:
    - master   
    
---

kind: pipeline
type: ssh
name: ssh-linux-test-irc-publish

platform:
  os: Linux
  arch: 386
  
clone:
  disable: true

server:
  host: 106.14.89.110
  user: root
  password:
    from_secret: test_ssh_pwd

steps:
- name: publish-test-irc
  commands:
  - echo start publish test-irc-api
  - cd /opt/1panel/hang/devops/test-irc
  - sh test-irc.sh v${DRONE_BUILD_NUMBER}
  
trigger:
  branch:
    - Test_IRC_Net8    
       
---

kind: pipeline
type: ssh
name: test-irc-publish-image-push-aliyun

platform:
  os: Linux
  arch: 386
  
clone:
  disable: true

server:
  host: 192.168.3.68
  user: root
  password:
    from_secret: local_pwd

steps:
- name: build-and-push-image
  commands:
  - cd /opt/hang/netcore/irc-test
  - sh test-irc.sh v${DRONE_BUILD_NUMBER}
  
trigger:
  branch:
    - master    
       
---

kind: pipeline
type: ssh
name: ssh-linux-test-study-publish

platform:
  os: Linux
  arch: 386

clone:
  disable: true

server:
  host: 123.56.94.154
  user: root
  password:
    from_secret: test_ssh_pwd
  
steps:
- name: publish-test-study
  commands:
  - echo start publish test-study-api
  - cd /opt/1panel/hang/devops/test-study
  - sh test-study.sh v${DRONE_BUILD_NUMBER}
  
trigger:
  branch:
    - Test.Study
