name: Deploy Docker Images run-name: build and deploy docker image to server. on: push: paths: - '**.dockerfile' jobs: Build dockerfile and Server deploy: runs-on: ubuntu-latest 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 1 --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 - name: Get changed files id: changed-dockerfiles uses: tj-actions/changed-files@v42 with: files: | **.dockerfile - name: List changed dockerfiles. run: | for file in ${{ steps.changed-dockerfiles.outputs.all_changed_files }}; do echo "${file} changed." done - name: Login to ACR uses: aliyun/acr-login@v1 with: login-server: https://registry.cn-shenzhen.aliyuncs.com username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build docker image and deploy. run: | for file in ${{ steps.changed-dockerfiles.outputs.all_changed_files }}; do echo "${file} changed." resources/build.sh docker ${file} done - name: Clean Docker Image run: docker images -f "dangling=true" -q | xargs -r docker rmi || true - 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