All Projects → svenstaro → upx-action

svenstaro / upx-action

Licence: MIT License
Strips and runs upx on binaries

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to upx-action

actions
Set of actions for implementing CI/CD with werf and GitHub Actions
Stars: ✭ 67 (+294.12%)
Mutual labels:  actions, action, github-actions
ghaction-upx
GitHub Action for UPX, the Ultimate Packer for eXecutables
Stars: ✭ 27 (+58.82%)
Mutual labels:  actions, upx, github-actions
dart-package-publisher
Action to Publish Dart / Flutter Package To https://pub.dev When you need to publish a package, just bump the version in pubspec.yaml
Stars: ✭ 45 (+164.71%)
Mutual labels:  actions, action, github-actions
action-autotag
Automatically generate a new tag when the manifest file (package.json, Dockerfile, custom file, etc) version changes.
Stars: ✭ 45 (+164.71%)
Mutual labels:  actions, action, github-actions
action-sync-node-meta
GitHub Action that syncs package.json with the repository metadata.
Stars: ✭ 25 (+47.06%)
Mutual labels:  actions, action, github-actions
action-homebrew-bump-formula
⚙️ A GitHub Action to easily bump Homebrew formula on new release
Stars: ✭ 68 (+300%)
Mutual labels:  actions, action, github-actions
clojure-dependency-update-action
A simple GitHub Actions job to create Pull Requests for outdated dependencies in clojure projects
Stars: ✭ 37 (+117.65%)
Mutual labels:  actions, action, github-actions
setup-jdk
(DEPRECATED) Set up your GitHub Actions workflow with a specific version of AdoptOpenJDK
Stars: ✭ 32 (+88.24%)
Mutual labels:  actions, action, github-actions
jest-github-action
Jest action adding checks with annotations to your pull requests and coverage table as comments
Stars: ✭ 134 (+688.24%)
Mutual labels:  actions, action, github-actions
actions
Collection of repetitive GitHub Actions
Stars: ✭ 12 (-29.41%)
Mutual labels:  actions, action, github-actions
rubocop-linter-action
Rubocop Linter Action: A GitHub Action to run Rubocop against your code!
Stars: ✭ 86 (+405.88%)
Mutual labels:  actions, action, github-actions
ssh2actions
Connect to GitHub Actions VM via SSH for interactive debugging
Stars: ✭ 62 (+264.71%)
Mutual labels:  actions, action, github-actions
assign-one-project-github-action
Automatically add an issue or pull request to specific GitHub Project(s) when you create and/or label them.
Stars: ✭ 140 (+723.53%)
Mutual labels:  actions, action, github-actions
github-run-tests-action
mabl Github Actions implementation
Stars: ✭ 39 (+129.41%)
Mutual labels:  actions, action, github-actions
overview
Automate your workflows with GitHub actions for MATLAB.
Stars: ✭ 40 (+135.29%)
Mutual labels:  actions, github-actions
git-actions
A GitHub Action to run arbitrary git commands
Stars: ✭ 72 (+323.53%)
Mutual labels:  action, github-actions
Android-CICD
This repo demonstrates how to work on CI/CD for Mobile Apps 📱 using Github Actions 💊 + Firebase Distribution 🎉
Stars: ✭ 37 (+117.65%)
Mutual labels:  actions, github-actions
lychee-action
Github action to check for broken links in Markdown, HTML, and text files using lychee, a fast link checker written in Rust.
Stars: ✭ 89 (+423.53%)
Mutual labels:  action, github-actions
cuda-toolkit
GitHub Action to install CUDA
Stars: ✭ 34 (+100%)
Mutual labels:  action, github-actions
ghaction-import-gpg
GitHub Action to easily import a GPG key
Stars: ✭ 161 (+847.06%)
Mutual labels:  actions, github-actions

Strip and run UPX on executables GitHub Actions Workflow

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.

Input variables

  • file: The file you want to compress. It's compressed in-place. required
  • args: Arguments to pass to UPX. optional
  • strip: Whether or not "strip" symbols from object file (default true). optional
  • strip_args: Arguments to pass to strip. optional

Usage

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@v2
    - name: Build
      run: cargo build --release --locked
    - name: Compress binaries
      uses: svenstaro/upx-action@v2
      with:
        file: target/release/mything

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
            file: target/release/mything
            args: --best --lzma
            strip: true
          - os: windows-latest
            file: target/release/mything.exe
            args: -9
            strip: false
          - os: macos-latest
            file: target/release/mything
            args: --best
            strip: true
    steps:
    - uses: actions/checkout@v2
    - name: Build
      run: cargo build --release --locked
    - name: Compress binaries
      uses: svenstaro/upx-action@v2
      with:
        file: ${{ matrix.file }}
        args: ${{ matrix.args }}
        strip: ${{ matrix.strip }}

Releasing and publishing

The instructions below are only relevant to maintainers of this Action.

  • Sadly there's some manual work involved whenever lzma-native is updated. After running npm run all, it's necessary to fetch prebuilt binaries from https://node-pre-gyp.addaleax.net/lzma-native/ and extract the prebuilt bindings into node_modules/lzma-native. For the same reason, we can't use ncc as that only supports a single platform but we need to support all platforms at once!
  • Make sure CHANGELOG.md is up-to-date.
  • git tag -sm <version> <version>
  • git push --tags
  • Make a release at https://github.com/svenstaro/upx-action/releases/new and copy the CHANGELOG.md contents there.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].