This repository has been archived by the owner on Jul 8, 2024. It is now read-only.
⚙️ Build GDB || GDBServer 📦 #5
Workflow file for this run
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 GDB || GDBServer 📦 | |
#MAX_RUNTIME: | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: "15 18 * * *" # 12:00 AM Nepal Time Midnight EveryDay | |
env: | |
GITHUB_TOKEN: ${{ secrets.STATIC_TOOLBOX }} | |
jobs: | |
#------------------------------------------------------------------------------------# | |
build-x86: | |
name: Build GDB & gdbserver x86 | |
runs-on: ubuntu-latest | |
container: muslcc/x86_64:i686-linux-musl | |
outputs: | |
version: ${{ steps.build_gdb.outputs.PACKAGED_VERSION }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh | |
- name: Install build compiler | |
run: $GITHUB_WORKSPACE/build/02_install_build_compiler.sh x86_64 | |
- name: Install dependencies workaround | |
run: $GITHUB_WORKSPACE/build/02_install_build_compiler.sh i686 | |
- name: Build GDB | |
id: build_gdb | |
run: | | |
export PATH="$PATH:/i686-linux-musl-cross/bin" | |
$GITHUB_WORKSPACE/build/targets/build_gdb.sh x86 | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ steps.build_gdb.outputs.PACKAGED_NAME }} | |
path: ${{ steps.build_gdb.outputs.PACKAGED_NAME_PATH }} | |
#------------------------------------------------------------------------------------# | |
build-x86_64: | |
name: Build GDB & gdbserver x86_64 | |
runs-on: ubuntu-latest | |
container: muslcc/x86_64:x86_64-linux-musl | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh | |
- name: Install build compiler | |
run: $GITHUB_WORKSPACE/build/02_install_build_compiler.sh x86_64 | |
- name: Build GDB | |
id: build_gdb | |
run: | | |
$GITHUB_WORKSPACE/build/targets/build_gdb.sh x86_64 | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ steps.build_gdb.outputs.PACKAGED_NAME }} | |
path: ${{ steps.build_gdb.outputs.PACKAGED_NAME_PATH }} | |
#------------------------------------------------------------------------------------# | |
build-armhf: | |
name: Build GDB & gdbserver ARMHF | |
runs-on: ubuntu-latest | |
container: muslcc/x86_64:arm-linux-musleabihf | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh | |
- name: Install build compiler | |
run: $GITHUB_WORKSPACE/build/02_install_build_compiler.sh x86_64 | |
- name: Install dependencies workaround | |
run: $GITHUB_WORKSPACE/build/02_install_build_compiler.sh arm | |
- name: Build gdb | |
id: build_gdb | |
run: | | |
export PATH="$PATH:/arm-linux-musleabihf-cross/bin" | |
$GITHUB_WORKSPACE/build/targets/build_gdb.sh armhf | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ steps.build_gdb.outputs.PACKAGED_NAME }} | |
path: ${{ steps.build_gdb.outputs.PACKAGED_NAME_PATH }} | |
#------------------------------------------------------------------------------------# | |
build-aarch64: | |
name: Build GDB & gdbserver AARCH64 | |
runs-on: ubuntu-latest | |
container: muslcc/x86_64:aarch64-linux-musl | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: sudo apk update && sudo apk add bash && sudo bash build/install_deps_alpine.sh | |
- name: Install build compiler | |
run: $GITHUB_WORKSPACE/build/02_install_build_compiler.sh x86_64 | |
- name: Install dependencies workaround | |
run: $GITHUB_WORKSPACE/build/02_install_build_compiler.sh aarch64 | |
- name: Patch headers | |
run: | | |
patch /aarch64-linux-musl-cross/aarch64-linux-musl/include/asm/sigcontext.h < $GITHUB_WORKSPACE/patches/gdb/gdb-aarch64-header-sigcontext-fix.patch | |
- name: Build GDB | |
id: build_gdb | |
run: | | |
export PATH="$PATH:/aarch64-linux-musl-cross/bin" | |
$GITHUB_WORKSPACE/build/targets/build_gdb.sh aarch64 | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ steps.build_gdb.outputs.PACKAGED_NAME }} | |
path: ${{ steps.build_gdb.outputs.PACKAGED_NAME_PATH }} | |
#------------------------------------------------------------------------------------# | |
create-release: | |
name: Create GDB & gdbserver Release | |
runs-on: ubuntu-latest | |
needs: [build-x86, build-x86_64, build-armhf, build-aarch64] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Prepare Environment | |
run: mkdir /tmp/releases | |
- name: Download Artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
path: /tmp/releases | |
- name: List Artifacts | |
run: ls -laR /tmp/releases | |
- name: Tag Release | |
id: tag_release | |
run: | | |
set +e | |
if git rev-list "gdb-v${{ needs.build-x86.outputs.version }}".. >/dev/null;then | |
echo "Tag for gdb-v${{ needs.build-x86.outputs.version }} already exists. Skipping release creation." | |
echo ::set-output name=NEW_RELEASE::"false" | |
else | |
git tag "gdb-v${{ needs.build-x86.outputs.version }}" | |
git push origin "gdb-v${{ needs.build-x86.outputs.version }}" | |
echo ::set-output name=NEW_RELEASE::"true" | |
fi | |
#------------------------------------------------------------------------------------# | |
- name: Releaser | |
uses: softprops/action-gh-release@v0.1.15 | |
if: ${{ steps.tag_release.outputs.NEW_RELEASE == 'true' }} | |
with: | |
name: "GDB v${{ needs.build-x86.outputs.version }}" | |
tag_name: "gdb-v${{ needs.build-x86.outputs.version }}" | |
prerelease: false | |
draft: false | |
generate_release_notes: false | |
token: "${{ secrets.GITHUB_TOKEN }}" | |
body: | | |
`Changelog`: _https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob;f=gdb/NEWS;hb=HEAD_ | |
`Install`: _https://github.com/Azathothas/static-toolbox/blob/master/README.md#gdb_ | |
files: | | |
/tmp/releases/*/* | |
#------------------------------------------------------------------------------------# |