Skip to content

Ignore failures for all detekt tasks #30

Ignore failures for all detekt tasks

Ignore failures for all detekt tasks #30

Workflow file for this run

name: Build
on:
push:
branches:
- "main"
- "release/*"
pull_request:
concurrency:
group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}"
cancel-in-progress: true
jobs:
# Prepare environment and build the plugin
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Fetch Sources
uses: actions/checkout@v4
with:
submodules: recursive
# Validate wrapper
- name: Gradle Wrapper Validation
uses: gradle/wrapper-validation-action@v2
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 17
# Setup Gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
with:
gradle-home-cache-cleanup: true
build-scan-publish: true
build-scan-terms-of-use-url: "https://gradle.com/terms-of-service"
build-scan-terms-of-use-agree: "yes"
- name: Restore Ghidra Dependency cache
id: cache-ghidra
uses: actions/cache/restore@v4
with:
path: ghidra/dependencies
key: "${{ runner.os }}-ghidra-dependencies-${{ hashFiles('**/fetchDependencies.gradle') }}"
- name: Fetch Ghidra Dependencies
if: steps.cache-ghidra.outputs.cache-hit != 'true'
run: |
gradle -I gradle/support/fetchDependencies.gradle init
working-directory: ghidra
- name: Save Ghidra Dependency cache
uses: actions/cache/save@v4
with:
path: ghidra/dependencies
key: ${{ steps.cache-ghidra.outputs.cache-primary-key }}
if: steps.cache-ghidra.outputs.cache-hit != 'true'
# Build plugin
- name: Build plugin
run: ./gradlew assembleDist
# Store already-built plugin as an artifact for downloading
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: artifacts-ghidralite-extension
path: ghidralite-extension/build/dist/*.zip
test:
name: Test
needs: [ build ]
runs-on: ubuntu-latest
permissions:
security-events: write
contents: write
steps:
- name: Fetch Sources
uses: actions/checkout@v4
with:
submodules: recursive
# Set up Java environment for the next steps
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 17
# Setup Gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
with:
gradle-home-cache-cleanup: true
- name: Restore Ghidra Dependency cache
uses: actions/cache/restore@v4
with:
path: ghidra/dependencies
key: "${{ runner.os }}-ghidra-dependencies-${{ hashFiles('**/fetchDependencies.gradle') }}"
# Run tests
- name: Run Tests
run: ./gradlew check
- name: Upload SARIF to GitHub using the upload-sarif action
uses: github/codeql-action/upload-sarif@v2
if: success() || failure()
with:
sarif_file: ${{ github.workspace }}/build/reports/detekt/merge.sarif
# Upload the Kover report to CodeCov
- name: Upload Code Coverage Report
uses: codecov/codecov-action@v4
if: success() || failure()
with:
files: ${{ github.workspace }}/build/reports/kover/report.xml
release:
name: Release draft
if: github.event_name != 'pull_request'
needs: [ build ]
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Fetch Sources
uses: actions/checkout@v4
- uses: google-github-actions/release-please-action@v4
id: release-please
with:
config-file: release-please-config.json
release-type: simple
- name: "Download Github Artifacts"
uses: actions/download-artifact@v4
with:
pattern: artifacts-*
path: artifacts
merge-multiple: true
- name: Upload Release Asset
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release upload --clobber ${{ steps.release-please.outputs.tag_name }} ./artifacts/*
if: ${{ steps.release-please.outputs.release_created }}