File: release_builds.yaml

package info (click to toggle)
pyocd 0.37.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 355,132 kB
  • sloc: xml: 3,682,260; python: 61,563; ansic: 112; makefile: 87; asm: 25; sh: 14
file content (77 lines) | stat: -rw-r--r-- 1,995 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
name: pyOCD Release Builds

on:
  release:
    types:
      - published
  workflow_dispatch:

jobs:
  build_artifacts:
    name: Build for ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [windows-latest, ubuntu-latest, macos-latest, ubuntu-24.04-arm]
        include:
          - os: windows-latest
            artifact_name: pyocd-windows
          - os: ubuntu-latest
            artifact_name: pyocd-linux
          - os: macos-latest
            artifact_name: pyocd-macos
          - os: ubuntu-24.04-arm
            artifact_name: pyocd-linux-arm64

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'
          cache: 'pip'

      - name: Install packages
        run: pip install . build twine pyinstaller

      - name: Build wheel and source distribution
        run: python -m build

      - name: Check distribution files
        run: twine check dist/*

      - name: Setup build environment
        run: python get_site-packages.py

      - name: Verify environment
        run: |
          echo "Site packages: ${{ env.SITE_PACKAGES }}"
          python -c "import sys; print(sys.version)"

      - name: Build with PyInstaller
        run: pyinstaller pyocd.spec --log-level=ERROR --clean

      - name: Test binary
        run: |
          ./dist/pyocd/pyocd --version
          ./dist/pyocd/pyocd --help

      - name: Upload PyInstaller artifacts
        uses: actions/upload-artifact@v4
        with:
          name: ${{ matrix.artifact_name }}
          path: dist/pyocd/*
          retention-days: 7

      - name: Upload distribution artifacts
        uses: actions/upload-artifact@v4
        if: matrix.os == 'ubuntu-latest'
        with:
          name: pyocd-distribution
          path: |
            dist/*.whl
            dist/*.tar.gz
          retention-days: 7