Strip and run UPX on executables
ActionsDramatically decreases size of executables by stripping them of debug symbols and running UPX on them
2.4.1
LatestBy svenstaro
Tags
(2)This action allows you to select an executable file which is then stripped and run through upx which drastically decreases the size of those executables. It runs on all operating systems types offered by GitHub.
files
: Newline-delimited list of path globs for files to compress. It's compressed in-place. If on Windows, provide Unix style paths (c:/something
). either files or file requiredfile
: The file you want to compress. It's compressed in-place. Deprecated, preferfiles
.args
: Arguments to pass to UPX. optionalstrip
: Whether or not "strip" symbols from object file (defaulttrue
). optionalstrip_args
: Arguments to pass to strip. optional
This Action is meant to be ran on just-compiled executables in the same CI job.
Simple example:
name: Publish
on:
push:
tags:
- '*'
jobs:
build:
name: Publish binaries
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build
run: cargo build --release --locked
- name: Compress binaries
uses: svenstaro/upx-action@v2
with:
files: |
target/release/mything
target/release/*
Complex example with more operating systems and inputs:
name: Publish
on:
push:
tags:
- '*'
jobs:
build:
name: Publish binaries for ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
files: |
target/release/mything
args: --best --lzma
strip: true
- os: windows-latest
files: |
target/release/mything.exe
args: -9
strip: false
- os: macos-latest
files: |
target/release/mything
args: --best
strip: true
steps:
- uses: actions/checkout@v3
- name: Build
run: cargo build --release --locked
- name: Compress binaries
uses: svenstaro/upx-action@v2
with:
files: |
${{ matrix.file }}
args: ${{ matrix.args }}
strip: ${{ matrix.strip }}
To release this Action:
- Bump version in
package.json
- Create
CHANGELOG.md
entry npm update
npm run all
git commit -am <version>
git tag -sm <version> <version>
git push --follow-tags
- Go to https://github.com/svenstaro/upx-action/releases and publish the new version
Strip and run UPX on executables is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.