diff --git a/.github/workflows/test-packaging.yml b/.github/workflows/test-packaging.yml index 38abf94b7c04..70a7f47fc017 100644 --- a/.github/workflows/test-packaging.yml +++ b/.github/workflows/test-packaging.yml @@ -12,16 +12,16 @@ on: - prepare-* pull_request: paths: - - "cmd/fleetctl/**.go" - - "pkg/**.go" - - "server/service/**.go" - - "server/context/**.go" - - "orbit/**.go" - - "ee/fleetctl/**.go" - - "tools/fleetctl-docker/**" - - "tools/wix-docker/**" - - "tools/bomutils-docker/**" - - ".github/workflows/test-packaging.yml" + - 'cmd/fleetctl/**.go' + - 'pkg/**.go' + - 'server/service/**.go' + - 'server/context/**.go' + - 'orbit/**.go' + - 'ee/fleetctl/**.go' + - 'tools/fleetctl-docker/**' + - 'tools/wix-docker/**' + - 'tools/bomutils-docker/**' + - '.github/workflows/test-packaging.yml' workflow_dispatch: # Manual # This allows a subsequently queued workflow run to interrupt previous runs @@ -47,86 +47,87 @@ jobs: # `macos-latest` uses arm64 by default now, so please be careful when # updating this version. os: [ubuntu-latest, macos-13] - go-version: ["${{ vars.GO_VERSION }}"] + go-version: ['${{ vars.GO_VERSION }}'] runs-on: ${{ matrix.os }} steps: - - name: Harden Runner - uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0 - with: - egress-policy: audit - - - name: Pull fleetdm/wix - # Run in background while other steps complete to speed up the workflow - run: docker pull fleetdm/wix:latest & - - - name: Run Colima - if: startsWith(matrix.os, 'macos') - timeout-minutes: 10 - # notes: - # - docker to install the docker CLI and interact with the Colima - # container runtime - # - colima is pre-installed in macos-12 runners, but not in macos-13 or - # macos-14 runners - run: | - brew install docker - # The runners come with an old version of python@3.12 that fails to upgrade - # when python gets pulled in as a dep through the chain - # colima -> lima -> qemu -> glibc -> python@3.12 - # Force upgrade it for now, remove once the problem is fixed - brew install --overwrite python@3.12 - brew install colima - colima start --mount $TMPDIR:w - - - name: Install Go - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 - with: - go-version: ${{ matrix.go-version }} - - - name: Checkout Code - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - - - name: Install wine and wix - if: startsWith(matrix.os, 'macos') - run: | - ./scripts/macos-install-wine.sh -n - wget https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip -nv -O wix.zip - mkdir wix - unzip wix.zip -d wix - rm -f wix.zip - echo wix installed at $(pwd)/wix - - # It seems faster not to cache Go dependencies - - name: Install Go Dependencies - run: make deps-go - - - name: Build fleetctl - run: make fleetctl - - - name: Build DEB - run: ./build/fleetctl package --type deb --enroll-secret=foo --fleet-url=https://localhost:8080 - - - name: Build DEB with Fleet Desktop - run: ./build/fleetctl package --type deb --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop - - - name: Build RPM - run: ./build/fleetctl package --type rpm --enroll-secret=foo --fleet-url=https://localhost:8080 - - - name: Build RPM with Fleet Desktop - run: ./build/fleetctl package --type rpm --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop - - - name: Build MSI - run: ./build/fleetctl package --type msi --enroll-secret=foo --fleet-url=https://localhost:8080 - - - name: Build MSI with Fleet Desktop - run: ./build/fleetctl package --type msi --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop - - - name: Build PKG - run: ./build/fleetctl package --type pkg --enroll-secret=foo --fleet-url=https://localhost:8080 - - - name: Build PKG with Fleet Desktop - run: ./build/fleetctl package --type pkg --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop - - - name: Build MSI (using local Wix) - if: startsWith(matrix.os, 'macos') - run: ./build/fleetctl package --type msi --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop --local-wix-dir ./wix + + - name: Harden Runner + uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0 + with: + egress-policy: audit + + - name: Pull fleetdm/wix + # Run in background while other steps complete to speed up the workflow + run: docker pull fleetdm/wix:latest & + + - name: Run Colima + if: startsWith(matrix.os, 'macos') + timeout-minutes: 10 + # notes: + # - docker to install the docker CLI and interact with the Colima + # container runtime + # - colima is pre-installed in macos-12 runners, but not in macos-13 or + # macos-14 runners + run: | + brew install docker + # The runners come with an old version of python@3.12 that fails to upgrade + # when python gets pulled in as a dep through the chain + # colima -> lima -> qemu -> glibc -> python@3.12 + # Force upgrade it for now, remove once the problem is fixed + brew install --overwrite python@3.12 + brew install colima + colima start --mount $TMPDIR:w + + - name: Install Go + uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 + with: + go-version: ${{ matrix.go-version }} + + - name: Checkout Code + uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + + - name: Install wine and wix + if: startsWith(matrix.os, 'macos') + run: | + ./scripts/macos-install-wine.sh -n + wget https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip -nv -O wix.zip + mkdir wix + unzip wix.zip -d wix + rm -f wix.zip + echo wix installed at $(pwd)/wix + + # It seems faster not to cache Go dependencies + - name: Install Go Dependencies + run: make deps-go + + - name: Build fleetctl + run: make fleetctl + + - name: Build DEB + run: ./build/fleetctl package --type deb --enroll-secret=foo --fleet-url=https://localhost:8080 + + - name: Build DEB with Fleet Desktop + run: ./build/fleetctl package --type deb --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop + + - name: Build RPM + run: ./build/fleetctl package --type rpm --enroll-secret=foo --fleet-url=https://localhost:8080 + + - name: Build RPM with Fleet Desktop + run: ./build/fleetctl package --type rpm --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop + + - name: Build MSI + run: ./build/fleetctl package --type msi --enroll-secret=foo --fleet-url=https://localhost:8080 + + - name: Build MSI with Fleet Desktop + run: ./build/fleetctl package --type msi --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop + + - name: Build PKG + run: ./build/fleetctl package --type pkg --enroll-secret=foo --fleet-url=https://localhost:8080 + + - name: Build PKG with Fleet Desktop + run: ./build/fleetctl package --type pkg --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop + + - name: Build MSI (using local Wix) + if: startsWith(matrix.os, 'macos') + run: ./build/fleetctl package --type msi --enroll-secret=foo --fleet-url=https://localhost:8080 --fleet-desktop --local-wix-dir ./wix