# This is a basic workflow to help you get started with Actions

name: ki_devops3_build

# Controls when the action will run. 
on:
  
  #push:
    # Triggers the workflow on push events for the branches start with release
    #branches:: [ 'release/**' ]

    # Triggers the workflow on push events but only for the master branch
    #branches: [ master ]

    # Triggers the workflow on push tag
    #tags: ['*']
    
  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:
  merge_group:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:

  # This workflow contains a single job called "devops3_test"
  devops3_test:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v4

      # Runs a set of commands using the runners shell
      - name: Run test
        run: |
           set -e
           echo call ./Publish/DevOps3/build-bash/10.Test.bash to test

           cd ./Publish/DevOps3/build-bash
           bash 10.Test.bash;
           echo run test succeed!

  # This workflow contains a single job called "devops3_build"
  devops3_build:
    # Requiring successful dependent jobs
    needs: devops3_test

    # The type of runner that the job will run on
    runs-on: ubuntu-latest

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v4

      # Runs a set of commands using the runners shell
      - name: Run build
        run: |
           set -e
           echo call ./Publish/DevOps3/github-bash/startup.bash to build

           export DOCKER_ImagePrefix="serset/"
           export DOCKER_USERNAME="${{ secrets.DOCKER_USERNAME  }}"
           export DOCKER_PASSWORD="${{ secrets.DOCKER_PASSWORD }}"
           export NUGET_SERVER="${{ secrets.NUGET_SERVER  }}"
           export NUGET_KEY="${{ secrets.NUGET_KEY }}"
           export WebDav_BaseUrl="${{ secrets.WebDav_BaseUrl }}"
           export WebDav_User="${{ secrets.WebDav_User }}"
           cd ./Publish/DevOps3/github-bash
           bash startup.bash
           echo build succeed!

           # echo "appName=${APPNAME}" >> $GITHUB_ENV


      - name: release_create
        id: release_create
        uses: actions/create-release@v1
        #if: hashFiles(env.release_assetPath)
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          release_name: ${{ env.release_name }}
          tag_name: ${{ env.release_tag }}
          draft: ${{ env.release_draft }}
          prerelease: ${{ env.release_prerelease }}
          body: ${{ env.release_body }}


      # release_upload_asset

      - uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.release_create.outputs.upload_url }}
          asset_path: ${{ env.release_dirPath }}/${{ env.appName }}-Station(net6.0)-${{ env.release_version }}.zip
          asset_name: ${{ env.appName }}-Station-net6.0-${{ env.release_version }}.zip
          asset_content_type: application/zip


      - uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.release_create.outputs.upload_url }}
          asset_path: ${{ env.release_dirPath }}/${{ env.appName }}-docker-image-${{ env.release_version }}.zip
          asset_name: ${{ env.appName }}-docker-image-${{ env.release_version }}.zip
          asset_content_type: application/zip

      - uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.release_create.outputs.upload_url }}
          asset_path: ${{ env.release_dirPath }}/${{ env.appName }}-docker-deploy-${{ env.release_version }}.zip
          asset_name: ${{ env.appName }}-docker-deploy-${{ env.release_version }}.zip
          asset_content_type: application/zip
