CI: Improve release procedures #17
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | ||
on: [push, pull_request, workflow_dispatch] | ||
permissions: | ||
contents: write | ||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
ghidra: | ||
- "11.0" | ||
- "10.4" | ||
- "10.3.3" | ||
- "10.3.2" | ||
- "10.3.1" | ||
- "10.3" | ||
steps: | ||
- name: Clone Repository | ||
uses: actions/checkout@v4 | ||
- name: Install Java | ||
uses: actions/setup-java@v4 | ||
with: | ||
distribution: 'temurin' | ||
java-version: '17' | ||
- name: Install Ghidra ${{ matrix.ghidra }} | ||
uses: antoniovazquezblanco/setup-ghidra@v1.2.0 | ||
with: | ||
auth_token: ${{ secrets.GITHUB_TOKEN }} | ||
version: ${{ matrix.ghidra }} | ||
- name: Build the extension for Ghidra ${{ matrix.ghidra }} | ||
uses: gradle/gradle-build-action@v2.11.1 | ||
with: | ||
gradle-version: 7.3 | ||
arguments: -PGHIDRA_INSTALL_DIR=${{ env.GHIDRA_INSTALL_DIR }} | ||
- name: Upload artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: DeviceTreeBlob_Ghidra_${{ matrix.ghidra }} | ||
path: dist/*GhidraDeviceTreeBlob.zip | ||
release: | ||
runs-on: "ubuntu-latest" | ||
needs: build | ||
steps: | ||
- name: Get current date | ||
id: date | ||
run: echo "::set-output name=date::$(date +'%Y-%m-%d')" | ||
- name: Download binaries | ||
uses: actions/download-artifact@v4 | ||
- name: Release nightly | ||
if: github.ref == 'refs/heads/main' | ||
uses: marvinpinto/action-automatic-releases@v1.2.1 | ||
with: | ||
repo_token: "${{ secrets.GITHUB_TOKEN }}" | ||
automatic_release_tag: "latest" | ||
prerelease: true | ||
title: "Ghidra DeviceTreeBlob Nightly (${{steps.date.outputs.date}})" | ||
files: DeviceTreeBlob_Ghidra_*/*GhidraDeviceTreeBlob.zip | ||
- name: Release stable | ||
if: contains(github.ref, 'refs/tags/v') | ||
uses: marvinpinto/action-automatic-releases@v1.2.1 | ||
with: | ||
repo_token: "${{ secrets.GITHUB_TOKEN }}" | ||
prerelease: false | ||
title: "Ghidra DeviceTreeBlob ${{github.ref_name}}" | ||
files: DeviceTreeBlob_Ghidra_*/*GhidraDeviceTreeBlob.zip |