diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fb08faf..463f8c8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,7 +3,7 @@ name: CI on: [push, pull_request] jobs: - vanilla: + build: runs-on: ubuntu-latest strategy: fail-fast: false @@ -11,6 +11,10 @@ jobs: target: - tiny-5.15 - tiny-6.6 + # Build twice for comparison + build: + - one + - two outputs: artifact_id: ${{ steps.upload.outputs.artifact-id }} steps: @@ -26,43 +30,21 @@ jobs: - uses: actions/upload-artifact@v4 id: upload with: - name: build1 + name: ${{ matrix.target }}-${{ matrix.build }} path: build if-no-files-found: error - vanilla2: + reproducible: runs-on: ubuntu-latest + container: debian:bookworm + needs: + - build strategy: fail-fast: false matrix: target: - tiny-5.15 - tiny-6.6 - outputs: - artifact_id: ${{ steps.upload.outputs.artifact-id }} - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Install dependencies - run: sudo apt-get update && sudo apt-get install -y make build-essential - - - name: Build vanilla kernel - run: make ${{ matrix.target }} - - - uses: actions/upload-artifact@v4 - id: upload - with: - name: build2 - path: build - if-no-files-found: error - - reproducible: - runs-on: ubuntu-latest - container: debian:bookworm - needs: - - vanilla - - vanilla2 steps: - name: Install dependencies run: | @@ -70,13 +52,8 @@ jobs: --no-install-recommends - uses: actions/download-artifact@v4 with: - pattern: "*" + pattern: "${{ matrix.target }}*" - name: diffoscope run: | - find . -name '*.deb' -exec sha256sum {} \; - # TODO: Ideally we'd just be able to diff the .changes files and let diffoscope find - # all the individual debs, but the source packages are not identical. When they are, - for deb in `find build1/ -name '*.deb' -exec basename {} \;`; do - echo "Diffoscoping $deb" - diffoscope build1/$deb build2/$deb - done; + # We need to exclude .buildinfo because the `Build-Date` will be different + diffoscope ${{ matrix.target }}-one/*.changes ${{ matrix.target }}-two/*.changes --exclude '*.buildinfo'