123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- name: Build Release
- on:
- push:
- tags:
- - v*
- jobs:
- build-releases:
- strategy:
- matrix:
- arch: ["linux/amd64 x86_64", "linux/arm/v7 armv7h", "linux/arm64 aarch64"]
- name: Build ${{ matrix.arch }}
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- with:
- fetch-depth: 0
- - name: Set up QEMU
- uses: docker/setup-qemu-action@v3
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3
- - name: Login to Docker Hub
- uses: docker/login-action@v3
- with:
- username: ${{ secrets.DOCKERHUB_USERNAME }}
- password: ${{ secrets.DOCKERHUB_TOKEN }}
- - name: Read info
- id: tags
- run: |
- echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- arch="${{ matrix.arch }}"
- echo "PLATFORM=${arch%% *}" >> $GITHUB_OUTPUT
- echo "ARCH=${arch##* }" >> $GITHUB_OUTPUT
- - name: Build ${{ matrix.arch }} release
- run: |
- mkdir artifacts
- docker buildx build --platform ${{ steps.tags.outputs.platform }} \
- --build-arg VERSION=${{ steps.tags.outputs.version }} \
- --build-arg ARCH=${{ steps.tags.outputs.arch }} \
- --build-arg PREFIX="/usr" \
- -t yay:${{ steps.tags.outputs.arch }} . --load
- make docker-release ARCH=${{ steps.tags.outputs.arch }} VERSION=${{ steps.tags.outputs.version }} PREFIX="/usr"
- mv *.tar.gz artifacts
- - uses: actions/upload-artifact@v4
- with:
- name: yay_${{ steps.tags.outputs.arch }}
- path: artifacts
- create_release:
- name: Create release from this build
- needs: [build-releases]
- runs-on: ubuntu-latest
- permissions:
- contents: write
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- fetch-depth: 0
- - name: Read info
- id: tags
- run: |
- echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- - uses: actions/download-artifact@v4
- with:
- pattern: yay_*
- merge-multiple: true
- - name: Create Release
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: |
- gh release create ${{ steps.tags.outputs.tag }} \
- --title "${{ steps.tags.outputs.tag }}" \
- --generate-notes \
- ./yay_${{ steps.tags.outputs.version }}_*.tar.gz
- - name: Release Notary Action
- uses: docker://aevea/release-notary:latest
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|