Builder extras installers #20
This file contains hidden or 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: Builder extras installers | |
| on: | |
| workflow_dispatch: | |
| release: | |
| types: [created] | |
| permissions: | |
| contents: write | |
| env: | |
| SRC_PATH: ${{ github.workspace }}/src | |
| INSTALLER_SCRIPT_PATH: ${{ github.workspace }}/src/bin/installer/bin | |
| EXTRAS_PATH: ${{ github.workspace }}/src/extras | |
| jobs: | |
| build-job: | |
| runs-on: windows-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| path: ${{ env.SRC_PATH }} | |
| - name: Setup Python 3.12 | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.12' | |
| - name: Install Python packages | |
| run: pip install py7zr pefile colorama | |
| - name: Update all installer .iss recursively | |
| working-directory: ${{ env.EXTRAS_PATH }} | |
| shell: bash | |
| run: | | |
| # normalize paths for sed on Windows runners | |
| WORKSPACE_BUILD_PATH=$(echo "${{ github.workspace }}" | tr '\\' '/') | |
| WORKSPACE_SRC_PATH=$(echo "${{ env.SRC_PATH }}" | tr '\\' '/') | |
| VERSION_CODE=$(date +'%Y.%m') | |
| # find and apply all replacements in-place to every .iss | |
| find . -type f -name '*.iss' -exec sed -i \ | |
| -e "s|C:\\\\code\\\\toolkit|$WORKSPACE_SRC_PATH|g" \ | |
| -e "s|C:\\\\code|$WORKSPACE_BUILD_PATH|g" \ | |
| -e "s/RELEASE/$VERSION_CODE/g" {} + | |
| ##---------------- | |
| ## Build Ghidra | |
| ##---------------- | |
| - name: Build Ghidra installer | |
| working-directory: ${{ env.EXTRAS_PATH }}/ghidra/installer | |
| run: ISCC.exe setup.iss | |
| ##---------------- | |
| ## Build Oldies | |
| ##---------------- | |
| - name: Unpack tools Oldies | |
| working-directory: ${{ env.INSTALLER_SCRIPT_PATH }} | |
| run: python unpack-project.py -f ${{ env.EXTRAS_PATH }}/oldies/toolkit | |
| - name: Build Oldies installer | |
| working-directory: ${{ env.EXTRAS_PATH }}/oldies/installer | |
| run: ISCC.exe setup.iss | |
| ##---------------- | |
| ## Build Unpacking | |
| ##---------------- | |
| - name: Unpack tools Unpacking | |
| working-directory: ${{ env.INSTALLER_SCRIPT_PATH }} | |
| run: python unpack-project.py -f ${{ env.EXTRAS_PATH }}/unpacking/toolkit | |
| - name: Build Unpacking installer | |
| working-directory: ${{ env.EXTRAS_PATH }}/unpacking/installer | |
| run: ISCC.exe setup.iss | |
| ##---------------- | |
| ## Build VBDEC | |
| ##---------------- | |
| - name: Build VBDEC installer | |
| working-directory: ${{ env.EXTRAS_PATH }}/vbdec/installer | |
| run: ISCC.exe setup.iss | |
| ##---------------- | |
| ## Generate report and upload all | |
| ##---------------- | |
| - name: Generate checksums report | |
| working-directory: ${{ env.INSTALLER_SCRIPT_PATH }} | |
| run: | | |
| Set-ExecutionPolicy Bypass -Scope Process -Force | |
| .\generate-checksums.ps1 -Directory "${{ env.EXTRAS_PATH }}" -OutputFile "${{ github.workspace }}/extras-tools.txt" | |
| .\generate-checksums.ps1 -Directory "${{ github.workspace }}" -FilePattern "*.exe" -NoRecurse -OutputFile "${{ github.workspace }}/extras-installer.txt" | |
| - name: Upload Setup as Artifact | |
| if: github.event_name != 'release' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: extras-setup-installer | |
| path: | | |
| ${{ github.workspace }}/*.exe | |
| ${{ github.workspace }}/extras-tools.txt | |
| ${{ github.workspace }}/extras-installer.txt | |
| - name: Upload Setup as Release download | |
| if: github.event_name == 'release' | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: | | |
| ${{ github.workspace }}/*.exe | |
| ${{ github.workspace }}/extras-tools.txt | |
| ${{ github.workspace }}/extras-installer.txt |