name: Publish Installers on: workflow_dispatch: ~ push: branches: [master] tags: [v*] jobs: build: name: Build ${{ matrix.os }} Package runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-20.04, windows-latest] steps: - name: Checkout Code uses: actions/checkout@v4 - name: Set Release Version id: get_version shell: bash run: | echo "::set-output name=hash::$(git rev-parse --short HEAD)" echo "::set-output name=date::$(date +%Y%m%d)" echo "::set-output name=url::$(git remote get-url origin)" - name: Set Up Python uses: actions/setup-python@v4 with: python-version: '3.12' cache: pip cache-dependency-path: '**/requirements*.txt' - name: Set up Python dependency cache uses: actions/cache@v3 with: path: ~/.cache/pypoetry key: ${{ runner.os }}-poetry-${{ hashFiles('pyproject.toml') }}-${{ steps.get_date.outputs.date }} - name: Install Dependencies run: | python -m pip install --upgrade pip wheel setuptools poetry poetry config virtualenvs.in-project true poetry install - name: Build Package on Linux if: matrix.os == 'ubuntu-20.04' run: | poetry run python -m PyInstaller search_domain-linux.spec - name: Build Package on Windows if: matrix.os == 'windows-latest' run: | poetry run python -m PyInstaller search_domain-windows.spec - name: Update to ali oss uses: yizhoumo/setup-ossutil@v1 with: endpoint: oss-cn-qingdao.aliyuncs.com access-key-id: ${{ secrets.OSS_KEY_ID }} access-key-secret: ${{ secrets.OSS_KEY_SECRET }} - name: cp files to aliyun run: | ossutil cp -r dist/ oss://yoqi-software/develop/search_domain/${{ steps.get_version.outputs.date }}-${{ steps.get_version.outputs.hash }}/ - uses: leafney/dingtalk-action@v1 if: always() env: DINGTALK_ACCESS_TOKEN: ${{ secrets.DINGTALK_ACCESS_TOKEN }} with: msgtype: link title: 'search_domain build success' text: 'please download from aliyun oss. [git.yoqi.me]' msg_url: '${{ steps.get_version.outputs.url }}'