diff --git a/.github/actions/rpm/action.yml b/.github/actions/rpm/action.yml index a0c7d100..9f3ce0c2 100644 --- a/.github/actions/rpm/action.yml +++ b/.github/actions/rpm/action.yml @@ -20,6 +20,10 @@ inputs: event-id: description: "Github event id" required: true + upload-source: + description: "Upload source" + required: false + default: 'false' runs: using: "composite" @@ -74,6 +78,7 @@ runs: path: /var/lib/mock/${{ inputs.target }}/result/${{ env.RPM }} - name: Upload SRPM + if: ${{ inputs.upload-source == 'true' }} uses: actions/upload-artifact@v4 with: name: ${{ env.SRPM }} diff --git a/.github/workflows/nightly-release.yml b/.github/workflows/nightly-release.yml index f413c29c..473c52dd 100644 --- a/.github/workflows/nightly-release.yml +++ b/.github/workflows/nightly-release.yml @@ -7,64 +7,70 @@ on: - cron: '05 00 * * *' jobs: - generate: - name: Generate spec, dist and collect commits info - runs-on: ubuntu-latest - outputs: - should-continue: ${{ steps.generate.outputs.should-continue }} - version: ${{ steps.generate.outputs.version }} - release-id: ${{ steps.generate.outputs.release-id }} - permissions: write-all - steps: - - name: Checkout Code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: ./.github/actions/generate - name: generate warewulf spec, dist and collect commits info - id: generate - with: - token: ${{ secrets.GITHUB_TOKEN }} - event-id: ${{ github.event.release.id }} + generate: + name: Generate spec, dist and collect commits info + runs-on: ubuntu-24.04 + outputs: + should-continue: ${{ steps.generate.outputs.should-continue }} + version: ${{ steps.generate.outputs.version }} + release-id: ${{ steps.generate.outputs.release-id }} + permissions: write-all + steps: + - name: Checkout Code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: generate warewulf spec, dist and collect commits info + uses: ./.github/actions/generate + id: generate + with: + token: ${{ secrets.GITHUB_TOKEN }} + event-id: ${{ github.event.release.id }} - publish: - name: Build and publish releases - runs-on: ubuntu-latest - needs: generate - if: needs.generate.outputs.should-continue == 'true' - container: - image: rockylinux/rockylinux:9 - options: --privileged - strategy: - fail-fast: false - matrix: - include: - - target: rocky+epel-8-x86_64 - arch: x86_64 - dist: el8 - - target: rocky+epel-9-x86_64 - arch: x86_64 - dist: el9 - - target: opensuse-leap-15.5-x86_64 - arch: x86_64 - dist: suse.lp155 - permissions: write-all + publish: + name: Build and publish releases + runs-on: ${{ matrix.runs-on }} + needs: generate + if: needs.generate.outputs.should-continue == 'true' + container: + image: rockylinux/rockylinux:9 + options: --privileged + strategy: + fail-fast: false + matrix: + arch: [x86_64, aarch64] + dist: [el9, el8, suse.lp155] + include: + - dist: el8 + target: rocky+epel-8 #-arch + - dist: el9 + target: rocky+epel-9 + - dist: suse.lp155 + target: opensuse-leap-15.5 + - arch: x86_64 + runs-on: ubuntu-24.04 + upload-source: 'true' + - arch: aarch64 + runs-on: ubuntu-24.04-arm - steps: - - name: Install git - run: | - dnf install -y git - - name: Checkout Code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: ./.github/actions/rpm - name: build rpms - id: rpm - with: - dist: ${{ matrix.dist }} - arch: ${{ matrix.arch }} - target: ${{ matrix.target }} - token: ${{ secrets.GITHUB_TOKEN }} - version: ${{ needs.generate.outputs.version }} - event-id: ${{ needs.generate.outputs.release-id }} + permissions: write-all + + steps: + - name: Install git + run: | + dnf install -y git + - name: Checkout Code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: build rpms + uses: ./.github/actions/rpm + id: rpm + with: + dist: ${{ matrix.dist }} + arch: ${{ matrix.arch }} + target: ${{ matrix.target }}-${{ matrix.arch }} + token: ${{ secrets.GITHUB_TOKEN }} + version: ${{ needs.generate.outputs.version }} + event-id: ${{ needs.generate.outputs.release-id }} + upload-source: ${{ matrix.upload-source }} diff --git a/.github/workflows/tagged-release.yml b/.github/workflows/tagged-release.yml index cfda1d93..1279163f 100644 --- a/.github/workflows/tagged-release.yml +++ b/.github/workflows/tagged-release.yml @@ -41,24 +41,26 @@ jobs: rpm: name: Build RPMs needs: dist - runs-on: ubuntu-latest + runs-on: ${{ matrix.runs-on }} container: image: rockylinux/rockylinux:9 options: --privileged strategy: fail-fast: false matrix: + arch: [x86_64, aarch64] + dist: [el9, el8, suse.lp155] include: - - target: rocky+epel-8-x86_64 - arch: x86_64 - dist: el8 - - target: rocky+epel-9-x86_64 - arch: x86_64 - dist: el9 - - target: opensuse-leap-15.5-x86_64 - arch: x86_64 - dist: suse.lp155 - + - dist: el8 + target: rocky+epel-8 #-arch + - dist: el9 + target: rocky+epel-9 + - dist: suse.lp155 + target: opensuse-leap-15.5 + - arch: x86_64 + runs-on: ubuntu-24.04 + - arch: aarch64 + runs-on: ubuntu-24.04-arm steps: - name: Prepare mock and rpm-build run: | @@ -73,13 +75,13 @@ jobs: - name: Build RPMs and run tests run: | - mock -r ${{ matrix.target }} --rebuild --spec=warewulf.spec --sources=. \ - && mock -r ${{ matrix.target }} --chroot -- bash -c "make -C /builddir/build/BUILD/warewulf-*/ test" + mock -r ${{ matrix.target }}-${{ matrix.arch }} --rebuild --spec=warewulf.spec --sources=. \ + && mock -r ${{ matrix.target }}-${{ matrix.arch }} --chroot -- bash -c "make -C /builddir/build/BUILD/warewulf-*/ test" - name: Attach RPM and SRPM to release uses: xresloader/upload-to-github-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - file: "/var/lib/mock/${{ matrix.target }}/result/warewulf-*.rpm" + file: "/var/lib/mock/${{ matrix.target }}-${{ matrix.arch }}/result/warewulf-*.rpm" tags: true diff --git a/CHANGELOG.md b/CHANGELOG.md index ffc8755d..f06be26e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +## v4.6.1, unreleased + +### Changed + +- Update GitHub actions to build aarch64 artifacts. + ## v4.6.0, 2025-03-02 ### Added