Compare commits

..

No commits in common. "master" and "v2" have entirely different histories.
master ... v2

29 changed files with 3706 additions and 6550 deletions

View File

@ -1,12 +1,2 @@
/coverage
# Dependency directories
node_modules/
jspm_packages/
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
/node_modules

View File

@ -1,3 +0,0 @@
/dist/**
/coverage/**
/node_modules/**

View File

@ -1,12 +1,11 @@
{
"env": {
"node": true,
"es6": true,
"jest": true
"es2021": true,
"jest/globals": true
},
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:jest/recommended",
"plugin:prettier/recommended"

2
.gitattributes vendored
View File

@ -1,4 +1,2 @@
/.yarn/releases/** binary
/.yarn/plugins/** binary
/dist/** linguist-generated=true
/lib/** linguist-generated=true

View File

@ -1,162 +1,22 @@
{
"latest": {
"id": 216714091,
"tag_name": "v5.0.1",
"html_url": "https://github.com/upx/upx/releases/tag/v5.0.1",
"id": 115584145,
"tag_name": "v4.1.0",
"html_url": "https://github.com/upx/upx/releases/tag/v4.1.0",
"assets": [
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-arm64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-arm_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-dos.zip",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-mips_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-powerpc64le_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-src.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-win32.zip",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-win64.zip"
]
},
"v5.0.1": {
"id": 216714091,
"tag_name": "v5.0.1",
"html_url": "https://github.com/upx/upx/releases/tag/v5.0.1",
"assets": [
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-arm64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-arm_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-dos.zip",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-mips_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-powerpc64le_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-src.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-win32.zip",
"https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-win64.zip"
]
},
"v5.0.0": {
"id": 201485424,
"tag_name": "v5.0.0",
"html_url": "https://github.com/upx/upx/releases/tag/v5.0.0",
"assets": [
"https://github.com/upx/upx/releases/download/v5.0.0/upx-5.0.0-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.0/upx-5.0.0-arm64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.0/upx-5.0.0-arm_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.0/upx-5.0.0-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.0/upx-5.0.0-dos.zip",
"https://github.com/upx/upx/releases/download/v5.0.0/upx-5.0.0-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.0/upx-5.0.0-mips_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.0/upx-5.0.0-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.0/upx-5.0.0-powerpc64le_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.0/upx-5.0.0-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.0/upx-5.0.0-src.tar.xz",
"https://github.com/upx/upx/releases/download/v5.0.0/upx-5.0.0-win32.zip",
"https://github.com/upx/upx/releases/download/v5.0.0/upx-5.0.0-win64.zip"
]
},
"v4.2.4": {
"id": 154915740,
"tag_name": "v4.2.4",
"html_url": "https://github.com/upx/upx/releases/tag/v4.2.4",
"assets": [
"https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-arm64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-arm_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-dos.zip",
"https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-mips_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-powerpc64le_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-src.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-win32.zip",
"https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-win64.zip"
]
},
"v4.2.3": {
"id": 148738382,
"tag_name": "v4.2.3",
"html_url": "https://github.com/upx/upx/releases/tag/v4.2.3",
"assets": [
"https://github.com/upx/upx/releases/download/v4.2.3/upx-4.2.3-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.3/upx-4.2.3-arm64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.3/upx-4.2.3-arm_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.3/upx-4.2.3-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.3/upx-4.2.3-dos.zip",
"https://github.com/upx/upx/releases/download/v4.2.3/upx-4.2.3-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.3/upx-4.2.3-mips_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.3/upx-4.2.3-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.3/upx-4.2.3-powerpc64le_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.3/upx-4.2.3-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.3/upx-4.2.3-src.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.3/upx-4.2.3-win32.zip",
"https://github.com/upx/upx/releases/download/v4.2.3/upx-4.2.3-win64.zip"
]
},
"v4.2.2": {
"id": 135721197,
"tag_name": "v4.2.2",
"html_url": "https://github.com/upx/upx/releases/tag/v4.2.2",
"assets": [
"https://github.com/upx/upx/releases/download/v4.2.2/upx-4.2.2-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.2/upx-4.2.2-arm64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.2/upx-4.2.2-arm_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.2/upx-4.2.2-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.2/upx-4.2.2-dos.zip",
"https://github.com/upx/upx/releases/download/v4.2.2/upx-4.2.2-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.2/upx-4.2.2-mips_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.2/upx-4.2.2-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.2/upx-4.2.2-powerpc64le_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.2/upx-4.2.2-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.2/upx-4.2.2-src.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.2/upx-4.2.2-win32.zip",
"https://github.com/upx/upx/releases/download/v4.2.2/upx-4.2.2-win64.zip"
]
},
"v4.2.1": {
"id": 127511011,
"tag_name": "v4.2.1",
"html_url": "https://github.com/upx/upx/releases/tag/v4.2.1",
"assets": [
"https://github.com/upx/upx/releases/download/v4.2.1/upx-4.2.1-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.1/upx-4.2.1-arm64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.1/upx-4.2.1-arm_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.1/upx-4.2.1-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.1/upx-4.2.1-dos.zip",
"https://github.com/upx/upx/releases/download/v4.2.1/upx-4.2.1-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.1/upx-4.2.1-mips_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.1/upx-4.2.1-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.1/upx-4.2.1-powerpc64le_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.1/upx-4.2.1-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.1/upx-4.2.1-src.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.1/upx-4.2.1-win32.zip",
"https://github.com/upx/upx/releases/download/v4.2.1/upx-4.2.1-win64.zip"
]
},
"v4.2.0": {
"id": 126740650,
"tag_name": "v4.2.0",
"html_url": "https://github.com/upx/upx/releases/tag/v4.2.0",
"assets": [
"https://github.com/upx/upx/releases/download/v4.2.0/upx-4.2.0-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.0/upx-4.2.0-arm64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.0/upx-4.2.0-arm_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.0/upx-4.2.0-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.0/upx-4.2.0-dos.zip",
"https://github.com/upx/upx/releases/download/v4.2.0/upx-4.2.0-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.0/upx-4.2.0-mips_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.0/upx-4.2.0-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.0/upx-4.2.0-powerpc64le_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.0/upx-4.2.0-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.0/upx-4.2.0-src.tar.xz",
"https://github.com/upx/upx/releases/download/v4.2.0/upx-4.2.0-win32.zip",
"https://github.com/upx/upx/releases/download/v4.2.0/upx-4.2.0-win64.zip"
"https://github.com/upx/upx/releases/download/v4.1.0/upx-4.1.0-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.1.0/upx-4.1.0-arm64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.1.0/upx-4.1.0-arm_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.1.0/upx-4.1.0-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.1.0/upx-4.1.0-dos.zip",
"https://github.com/upx/upx/releases/download/v4.1.0/upx-4.1.0-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.1.0/upx-4.1.0-mips_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.1.0/upx-4.1.0-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.1.0/upx-4.1.0-powerpc64le_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.1.0/upx-4.1.0-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.1.0/upx-4.1.0-src.tar.xz",
"https://github.com/upx/upx/releases/download/v4.1.0/upx-4.1.0-win32.zip",
"https://github.com/upx/upx/releases/download/v4.1.0/upx-4.1.0-win64.zip"
]
},
"v4.1.0": {

View File

@ -4,10 +4,6 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
permissions:
contents: read
on:
schedule:
- cron: '0 10 * * *'
@ -36,7 +32,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v3
-
name: Download files
shell: bash
@ -73,7 +69,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v3
-
name: UPX
uses: ./

View File

@ -4,10 +4,6 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
permissions:
contents: read
on:
push:
branches:
@ -23,17 +19,12 @@ on:
jobs:
labeler:
runs-on: ubuntu-latest
permissions:
# same as global permissions
contents: read
# required to update labels
issues: write
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v3
-
name: Run Labeler
uses: crazy-max/ghaction-github-labeler@v5
uses: crazy-max/ghaction-github-labeler@v4
with:
dry-run: ${{ github.event_name == 'pull_request' }}

View File

@ -4,10 +4,6 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
permissions:
contents: read
on:
push:
branches:
@ -23,16 +19,19 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v3
-
name: Validate
uses: docker/bake-action@v3
with:
targets: validate
-
name: Test
uses: docker/bake-action@v6
uses: docker/bake-action@v3
with:
source: .
targets: test
-
name: Upload coverage
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@v3
with:
files: ./coverage/clover.xml
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage/clover.xml

View File

@ -4,10 +4,6 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
permissions:
contents: read
on:
workflow_dispatch:
schedule:
@ -21,7 +17,7 @@ on:
jobs:
generate:
uses: crazy-max/.github/.github/workflows/releases-json.yml@fa6141aedf23596fb8bdcceab9cce8dadaa31bd9
uses: crazy-max/.github/.github/workflows/releases-json.yml@6dc31870ca6c4f8489bf5a408ab38fae60f47eec
with:
repository: upx/upx
artifact_name: upx-releases-json
@ -31,19 +27,15 @@ jobs:
open-pr:
runs-on: ubuntu-22.04
if: github.event_name != 'pull_request'
permissions:
# required to create PR
contents: write
pull-requests: write
needs:
- generate
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v3
-
name: Download
uses: actions/download-artifact@v4
uses: actions/download-artifact@v3
with:
name: upx-releases-json
path: .github
@ -53,7 +45,7 @@ jobs:
git add -A .
-
name: Create PR
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38
with:
base: master
branch: bot/upx-releases-json

View File

@ -1,49 +0,0 @@
name: validate
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
permissions:
contents: read
on:
push:
branches:
- 'master'
- 'releases/v*'
pull_request:
paths-ignore:
- '.github/upx-releases.json'
jobs:
prepare:
runs-on: ubuntu-latest
outputs:
targets: ${{ steps.generate.outputs.targets }}
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: List targets
id: generate
uses: docker/bake-action/subaction/list-targets@v6
with:
target: validate
validate:
runs-on: ubuntu-latest
needs:
- prepare
strategy:
fail-fast: false
matrix:
target: ${{ fromJson(needs.prepare.outputs.targets) }}
steps:
-
name: Validate
uses: docker/bake-action@v6
with:
targets: ${{ matrix.target }}

71
.gitignore vendored
View File

@ -1,5 +1,12 @@
# https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore
/.dev
node_modules/
lib
# Jetbrains
/.idea
/*.iml
# Rest of the file pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
# Logs
logs
*.log
@ -7,7 +14,6 @@ npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
@ -18,14 +24,34 @@ pids
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# TypeScript cache
*.tsbuildinfo
@ -35,19 +61,36 @@ jspm_packages/
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
# dotenv environment variables file
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
.env.test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/

View File

@ -1,6 +0,0 @@
# Dependency directories
node_modules/
jspm_packages/
# yarn v2
.yarn/

File diff suppressed because one or more lines are too long

View File

@ -1,13 +0,0 @@
logFilters:
- code: YN0013
level: discard
- code: YN0019
level: discard
- code: YN0076
level: discard
nodeLinker: node-modules
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
spec: "@yarnpkg/plugin-interactive-tools"

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2020-2025 CrazyMax
Copyright (c) 2020-2023 CrazyMax
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -34,10 +34,10 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v3
-
name: Run UPX
uses: crazy-max/ghaction-upx@v3
uses: crazy-max/ghaction-upx@v2
with:
version: latest
files: |
@ -59,10 +59,10 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v3
-
name: Install UPX
uses: crazy-max/ghaction-upx@v3
uses: crazy-max/ghaction-upx@v2
with:
install-only: true
-
@ -74,7 +74,7 @@ jobs:
### inputs
The following inputs can be used as `step.with` keys
Following inputs can be used as `step.with` keys
| Name | Type | Default | Description |
|----------------|--------|----------|------------------------------------------------------------|
@ -89,10 +89,11 @@ This action is only available for Linux and Windows [virtual environments](https
## Contributing
Want to contribute? Awesome! The most basic way to show your support is to star
the project, or to raise issues. You can also support this project by [**becoming a sponsor on GitHub**](https://github.com/sponsors/crazy-max)
or by making a [PayPal donation](https://www.paypal.me/crazyws) to ensure this
journey continues indefinitely!
Want to contribute? Awesome! The most basic way to show your support is to star the project, or to raise issues. If
you want to open a pull request, please read the [contributing guidelines](.github/CONTRIBUTING.md).
You can also support this project by [**becoming a sponsor on GitHub**](https://github.com/sponsors/crazy-max) or by
making a [Paypal donation](https://www.paypal.me/crazyws) to ensure this journey continues indefinitely!
Thanks again for your support, it is much appreciated! :pray:

View File

@ -18,7 +18,7 @@ describe('getRelease', () => {
});
it('unknown release', async () => {
await expect(installer.getRelease('foo')).rejects.toThrow(
await expect(installer.getRelease('foo')).rejects.toThrowError(
new Error(
'Cannot find UPX release foo in https://raw.githubusercontent.com/crazy-max/ghaction-upx/master/.github/upx-releases.json'
)

View File

@ -28,5 +28,5 @@ inputs:
runs:
using: 'node20'
using: 'node16'
main: 'dist/index.js'

View File

@ -1,12 +1,3 @@
comment: false
coverage:
status:
project: # settings affecting project coverage
default:
target: auto # auto % coverage target
threshold: 5% # allow for 5% reduction of coverage without failing
patch: off
github_checks:
annotations: false

View File

@ -1,20 +1,13 @@
# syntax=docker/dockerfile:1
ARG NODE_VERSION=20
ARG NODE_VERSION=16
FROM node:${NODE_VERSION}-alpine AS base
RUN apk add --no-cache cpio findutils git
WORKDIR /src
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache <<EOT
corepack enable
yarn --version
yarn config set --home enableTelemetry 0
EOT
FROM base AS deps
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \
yarn install && mkdir /vendor && cp yarn.lock /vendor
@ -35,7 +28,6 @@ EOT
FROM deps AS build
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \
yarn run build && mkdir /out && cp -Rf dist /out/
@ -56,7 +48,6 @@ EOT
FROM deps AS format
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \
yarn run format \
&& mkdir /out && find . -name '*.ts' -not -path './node_modules/*' | cpio -pdm /out
@ -66,7 +57,6 @@ COPY --from=format /out /
FROM deps AS lint
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \
yarn run lint
@ -74,9 +64,8 @@ FROM deps AS test
ENV RUNNER_TEMP=/tmp/github_runner
ENV RUNNER_TOOL_CACHE=/tmp/github_tool_cache
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \
yarn run test --coverage --coverageDirectory=/tmp/coverage
yarn run test --coverageDirectory=/tmp/coverage
FROM scratch AS test-coverage
COPY --from=test /tmp/coverage /

4
dist/index.js generated vendored

File diff suppressed because one or more lines are too long

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

46
dist/licenses.txt generated vendored
View File

@ -71,28 +71,6 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@fastify/busboy
MIT
Copyright Brian White. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
balanced-match
MIT
(MIT)
@ -383,29 +361,17 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
undici
uuid
MIT
MIT License
The MIT License (MIT)
Copyright (c) Matteo Collina and Undici contributors
Copyright (c) 2010-2020 Robert Kieffer and other contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
wrappy

View File

@ -1,9 +1,3 @@
target "_common" {
args = {
BUILDKIT_CONTEXT_KEEP_GIT_DIR = 1
}
}
group "default" {
targets = ["build"]
}
@ -23,7 +17,6 @@ target "build" {
}
target "build-validate" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
target = "build-validate"
output = ["type=cacheonly"]
@ -48,7 +41,6 @@ target "vendor-update" {
}
target "vendor-validate" {
inherits = ["_common"]
dockerfile = "dev.Dockerfile"
target = "vendor-validate"
output = ["type=cacheonly"]

View File

@ -1,12 +1,9 @@
module.exports = {
clearMocks: true,
testEnvironment: 'node',
moduleFileExtensions: ['js', 'ts'],
testMatch: ['**/*.test.ts'],
transform: {
'^.+\\.ts$': 'ts-jest'
},
collectCoverageFrom: ['src/**/{!(main.ts),}.ts'],
coveragePathIgnorePatterns: ['dist/', 'node_modules/', '__tests__/'],
verbose: true
};

View File

@ -4,13 +4,9 @@
"main": "lib/main.js",
"scripts": {
"build": "ncc build src/main.ts --source-map --minify --license licenses.txt",
"lint": "yarn run prettier && yarn run eslint",
"format": "yarn run prettier:fix && yarn run eslint:fix",
"eslint": "eslint --max-warnings=0 .",
"eslint:fix": "eslint --fix .",
"prettier": "prettier --check \"./**/*.ts\"",
"prettier:fix": "prettier --write \"./**/*.ts\"",
"test": "jest",
"lint": "eslint src/**/*.ts __tests__/**/*.ts",
"format": "eslint --fix src/**/*.ts __tests__/**/*.ts",
"test": "jest --coverage",
"all": "yarn run build && yarn run format && yarn test"
},
"repository": {
@ -23,26 +19,25 @@
],
"author": "CrazyMax",
"license": "MIT",
"packageManager": "yarn@3.6.3",
"dependencies": {
"@actions/core": "^1.11.1",
"@actions/core": "^1.10.0",
"@actions/exec": "^1.1.1",
"@actions/http-client": "^2.2.3",
"@actions/tool-cache": "^2.0.2"
"@actions/http-client": "^2.1.1",
"@actions/tool-cache": "^2.0.1"
},
"devDependencies": {
"@types/node": "^20.6.0",
"@typescript-eslint/eslint-plugin": "^6.6.0",
"@typescript-eslint/parser": "^6.6.0",
"@vercel/ncc": "^0.38.0",
"eslint": "^8.49.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-jest": "^27.2.3",
"eslint-plugin-prettier": "^5.0.0",
"jest": "^29.6.4",
"prettier": "^3.0.3",
"ts-jest": "^29.1.1",
"ts-node": "^10.9.1",
"typescript": "^5.2.2"
"@types/node": "^16.11.26",
"@typescript-eslint/eslint-plugin": "^5.14.0",
"@typescript-eslint/parser": "^5.14.0",
"@vercel/ncc": "^0.33.3",
"eslint": "^8.11.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-jest": "^26.1.1",
"eslint-plugin-prettier": "^4.0.0",
"jest": "^27.2.5",
"prettier": "^2.3.1",
"ts-jest": "^27.1.2",
"ts-node": "^10.7.0",
"typescript": "^4.4.4"
}
}

View File

@ -63,30 +63,11 @@ export async function getUPX(version: string): Promise<string> {
}
function getName(version: string): string {
let platform: string;
switch (osArch) {
case 'x64': {
platform = osPlat === 'win32' ? 'win64' : 'amd64_' + osPlat;
break;
}
case 'x32': {
platform = osPlat === 'win32' ? 'win32' : 'i386_' + osPlat;
break;
}
case 'arm': {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const arm_version = (process.config.variables as any).arm_version;
if (arm_version === '7') {
platform = 'armeb_' + osPlat;
} else {
platform = 'arm_' + osPlat;
}
break;
}
default: {
platform = osArch + '_' + osPlat;
break;
}
let platform = '';
if (osPlat == 'win32') {
platform = osArch == 'x64' ? 'win64' : 'win32';
} else if (osPlat == 'linux') {
platform = osArch == 'x64' ? 'amd64_linux' : 'i386_linux';
}
return util.format('upx-%s-%s', version, platform);
}

View File

@ -1,12 +1,13 @@
{
"compilerOptions": {
"esModuleInterop": true,
"target": "es6",
"module": "commonjs",
"newLine": "lf",
"outDir": "./lib",
"rootDir": "./src",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"noImplicitAny": false,
"resolveJsonModule": true,
"useUnknownInCatchVariables": false,

9139
yarn.lock

File diff suppressed because it is too large Load Diff