name: Deploy run-name: build and deploy app to server. on: push: paths: - '**.cpp' - '**.h' - '**.conf' jobs: Build: runs-on: [ubuntu-latest, ubuntu-24.04] container: image: registry.cn-shenzhen.aliyuncs.com/amass_toolset/ubuntu_dev:22.04 credentials: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} steps: - name: Set up SSH run: | mkdir -p ~/.ssh/ echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 ssh-keyscan -t ed25519 -p 22022 frp-by1.wwvvww.cn >> ~/.ssh/known_hosts - name: Clone repository run: | echo "git clone --depth 10 --branch=${GITHUB_REF##*/} ssh://git@frp-by1.wwvvww.cn:22022/${{ gitea.repository }}.git" git clone --depth 1 --branch=${GITHUB_REF##*/} ssh://git@frp-by1.wwvvww.cn:22022/${{ gitea.repository }}.git . git checkout ${GITHUB_SHA} - name: Notify-Start if: ${{ always() }} run: | echo "${{ github.repository }} 开始构建..." > notify.tpl echo "构建地址: https://amass.fun/gitea/${{ github.repository }}/actions/runs/${{ github.run_number }}">> notify.tpl echo "仓库地址: https://amass.fun/gitea/${{ github.repository }}">> notify.tpl echo "提交ID: $(git rev-parse --short HEAD)">> notify.tpl echo -n "提交消息: ${{ github.event.head_commit.message }}">> notify.tpl cat notify.tpl | envsubst | jq -sR . | xargs -0 -I {} curl -H "Content-Type: application/json" -X POST -d '{"type":"text","msg":{} }' https://amass.fun/notify - run: resources/build.sh build - name: Copy app wt resources to server uses: appleboy/scp-action@v0.1.7 with: host: ${{ vars.YUYUN_SERVER }} username: ${{ vars.YUYUN_USER }} password: ${{ secrets.SERVER_ROOT_PASSWORD }} overwrite: true strip_components: 1 source: "resources/*.css,resources/*.xml" target: /root/Server/resources - name: Copy files to server uses: appleboy/scp-action@v0.1.7 with: host: ${{ vars.YUYUN_SERVER }} username: ${{ vars.YUYUN_USER }} password: ${{ secrets.SERVER_ROOT_PASSWORD }} overwrite: true strip_components: 2 source: build/Server/HttpServer target: /tmp - name: Restart server uses: appleboy/ssh-action@v1.1.0 with: host: ${{ vars.YUYUN_SERVER }} username: ${{ vars.YUYUN_USER }} password: ${{ secrets.SERVER_ROOT_PASSWORD }} script: | cd /root/Server source /etc/profile /root/Server/HttpServer --exit sleep 1 cp /tmp/HttpServer /root/Server/HttpServer nohup /root/Server/HttpServer > /dev/null 2>&1 & exit 0 - name: Copy openresty configuration files to server uses: appleboy/scp-action@v0.1.7 with: host: ${{ vars.YUYUN_SERVER }} username: ${{ vars.YUYUN_USER }} password: ${{ secrets.SERVER_ROOT_PASSWORD }} overwrite: true strip_components: 1 source: Server/conf target: /root/Server - name: Restart openresty uses: appleboy/ssh-action@v1.1.0 with: host: ${{ vars.YUYUN_SERVER }} username: ${{ vars.YUYUN_USER }} password: ${{ secrets.SERVER_ROOT_PASSWORD }} script: | systemctl restart openresty.service; exit 0 - name: Notify-End if: ${{ always() }} run: | echo "${{ github.repository }} 构建结束" > notify.tpl echo "构建状态: ${{ job.status }}">> notify.tpl echo "构建地址: https://amass.fun/gitea/${{ github.repository }}/actions/runs/${{ github.run_number }}">> notify.tpl echo "仓库地址: https://amass.fun/gitea/${{ github.repository }}">> notify.tpl echo "提交ID: $(git rev-parse --short HEAD)">> notify.tpl echo -n "提交消息: ${{ github.event.head_commit.message }}">> notify.tpl cat notify.tpl | envsubst | jq -sR . | xargs -0 -I {} curl -H "Content-Type: application/json" -X POST -d '{"type":"text","msg":{} }' https://amass.fun/notify