Compare commits

..

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

40 changed files with 3894 additions and 7126 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,101 +0,0 @@
# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema
name: Bug Report
description: Report a bug
labels:
- kind/bug
- status/triage
body:
- type: checkboxes
attributes:
label: Support guidelines
description: Please read the support guidelines before proceeding.
options:
- label: I've read the [support guidelines](https://github.com/crazy-max/ghaction-upx/blob/master/.github/SUPPORT.md)
required: true
- type: checkboxes
attributes:
label: I've found a bug and checked that ...
description: |
Make sure that your request fulfills all of the following requirements. If one requirement cannot be satisfied, explain in detail why.
options:
- label: ... the documentation does not mention anything about my problem
- label: ... there are no open or closed issues that are related to my problem
- type: textarea
attributes:
label: Description
description: |
Please provide a brief description of the bug in 1-2 sentences.
validations:
required: true
- type: textarea
attributes:
label: Expected behaviour
description: |
Please describe precisely what you'd expect to happen.
validations:
required: true
- type: textarea
attributes:
label: Actual behaviour
description: |
Please describe precisely what is actually happening.
validations:
required: true
- type: textarea
attributes:
label: Steps to reproduce
description: |
Please describe the steps to reproduce the bug.
placeholder: |
1. ...
2. ...
3. ...
validations:
required: true
- type: input
attributes:
label: Repository URL
description: >
Enter the URL of the repository where you are experiencing the
issue. If your repository is private, provide a link to a minimal
repository that reproduces the issue.
validations:
required: true
- type: input
attributes:
label: Workflow run URL
description: >
Enter the URL of the GitHub Action workflow run that fails (e.g.
`https://github.com/<user>/<repo>/actions/runs/<id>`)
- type: textarea
attributes:
label: YAML workflow
description: |
Provide the YAML of the workflow that's causing the issue.
Make sure to remove any sensitive information.
render: yaml
validations:
required: true
- type: textarea
attributes:
label: Workflow logs
description: >
[Attach](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/attaching-files)
the [log file of your workflow run](https://docs.github.com/en/actions/managing-workflow-runs/using-workflow-run-logs#downloading-logs)
and make sure to remove any sensitive information.
- type: textarea
attributes:
label: Additional info
description: |
Please provide any additional information that seem useful.

34
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,34 @@
---
name: Bug report
about: Create a report to help us improve
---
### Behaviour
#### Steps to reproduce this issue
1.
2.
3.
#### Expected behaviour
> Tell me what should happen
#### Actual behaviour
> Tell me what happens instead
### Configuration
* Repository URL (if public):
* Build URL (if public):
```yml
# paste your YAML workflow file here and remove sensitive data
```
### Logs
> Download the [log file of your build](https://docs.github.com/en/actions/managing-workflow-runs/using-workflow-run-logs#downloading-logs)
> and [attach it](https://docs.github.com/en/github/managing-your-work-on-github/file-attachments-on-issues-and-pull-requests) to this issue.

View File

@ -1,6 +0,0 @@
# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#configuring-the-template-chooser
blank_issues_enabled: true
contact_links:
- name: Questions and Discussions
url: https://github.com/crazy-max/ghaction-upx/discussions/new
about: Use Github Discussions to ask questions and/or open discussion topics.

View File

@ -1,15 +0,0 @@
# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema
name: Feature request
description: Missing functionality? Come tell us about it!
labels:
- kind/enhancement
- status/triage
body:
- type: textarea
id: description
attributes:
label: Description
description: What is the feature you want to see?
validations:
required: true

View File

@ -4,16 +4,19 @@ updates:
directory: "/"
schedule:
interval: "daily"
time: "06:00"
timezone: "Europe/Paris"
labels:
- "kind/dependencies"
- "bot"
- ":game_die: dependencies"
- ":robot: bot"
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
versioning-strategy: "increase"
time: "06:00"
timezone: "Europe/Paris"
allow:
- dependency-type: "production"
labels:
- "kind/dependencies"
- "bot"
- ":game_die: dependencies"
- ":robot: bot"

134
.github/labels.yml vendored
View File

@ -1,69 +1,85 @@
## more info https://github.com/crazy-max/ghaction-github-labeler
-
name: "bot"
color: "69cde9"
description: ""
-
name: "good first issue"
color: "7057ff"
description: ""
-
name: "help wanted"
color: "4caf50"
description: ""
-
name: "area/ci"
color: "ed9ca9"
description: ""
-
name: "kind/bug"
color: "b60205"
description: ""
-
name: "kind/dependencies"
color: "0366d6"
description: ""
-
name: "kind/docs"
color: "c5def5"
description: ""
-
name: "kind/duplicate"
color: "cccccc"
description: ""
-
name: "kind/enhancement"
color: "0054ca"
description: ""
-
name: "kind/invalid"
color: "e6e6e6"
description: ""
-
name: "kind/upstream"
color: "fbca04"
description: ""
-
name: "kind/wontfix"
color: "ffffff"
description: ""
-
name: "status/automerge"
- # automerge
name: ":bell: automerge"
color: "8f4fbc"
description: ""
-
name: "status/needs-investigation"
- # bot
name: ":robot: bot"
color: "69cde9"
description: ""
- # bug
name: ":bug: bug"
color: "b60205"
description: ""
- # dependencies
name: ":game_die: dependencies"
color: "0366d6"
description: ""
- # documentation
name: ":memo: documentation"
color: "c5def5"
description: ""
- # duplicate
name: ":busts_in_silhouette: duplicate"
color: "cccccc"
description: ""
- # enhancement
name: ":sparkles: enhancement"
color: "0054ca"
description: ""
- # feature request
name: ":bulb: feature request"
color: "0e8a16"
description: ""
- # feedback
name: ":mega: feedback"
color: "03a9f4"
description: ""
- # future maybe
name: ":rocket: future maybe"
color: "fef2c0"
description: ""
- # good first issue
name: ":hatching_chick: good first issue"
color: "7057ff"
description: ""
- # help wanted
name: ":pray: help wanted"
color: "4caf50"
description: ""
- # invalid
name: ":no_entry_sign: invalid"
color: "e6e6e6"
description: ""
- # investigate
name: ":mag: investigate"
color: "e6625b"
description: ""
-
name: "status/needs-more-info"
- # needs more info
name: ":thinking: needs more info"
color: "795548"
description: ""
-
name: "status/stale"
- # pinned
name: ":pushpin: pinned"
color: "28008e"
description: ""
- # question
name: ":question: question"
color: "3f51b5"
description: ""
- # sponsor
name: ":sparkling_heart: sponsor"
color: "fedbf0"
description: ""
- # stale
name: ":skull: stale"
color: "237da0"
description: ""
-
name: "status/triage"
color: "dde4b7"
- # upstream
name: ":eyes: upstream"
color: "fbca04"
description: ""
- # wontfix
name: ":coffin: wontfix"
color: "ffffff"
description: ""

View File

@ -1,364 +0,0 @@
{
"latest": {
"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.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"
]
},
"v4.1.0": {
"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/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.0.2": {
"id": 90665948,
"tag_name": "v4.0.2",
"html_url": "https://github.com/upx/upx/releases/tag/v4.0.2",
"assets": [
"https://github.com/upx/upx/releases/download/v4.0.2/upx-4.0.2-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.2/upx-4.0.2-arm64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.2/upx-4.0.2-arm_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.2/upx-4.0.2-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.2/upx-4.0.2-dos.zip",
"https://github.com/upx/upx/releases/download/v4.0.2/upx-4.0.2-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.2/upx-4.0.2-mips_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.2/upx-4.0.2-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.2/upx-4.0.2-powerpc64le_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.2/upx-4.0.2-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.2/upx-4.0.2-src.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.2/upx-4.0.2-win32.zip",
"https://github.com/upx/upx/releases/download/v4.0.2/upx-4.0.2-win64.zip"
]
},
"v4.0.1": {
"id": 83324543,
"tag_name": "v4.0.1",
"html_url": "https://github.com/upx/upx/releases/tag/v4.0.1",
"assets": [
"https://github.com/upx/upx/releases/download/v4.0.1/upx-4.0.1-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.1/upx-4.0.1-arm64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.1/upx-4.0.1-arm_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.1/upx-4.0.1-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.1/upx-4.0.1-dos.zip",
"https://github.com/upx/upx/releases/download/v4.0.1/upx-4.0.1-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.1/upx-4.0.1-mips_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.1/upx-4.0.1-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.1/upx-4.0.1-powerpc64le_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.1/upx-4.0.1-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.1/upx-4.0.1-src.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.1/upx-4.0.1-win32.zip",
"https://github.com/upx/upx/releases/download/v4.0.1/upx-4.0.1-win64.zip"
]
},
"v4.0.0": {
"id": 81373677,
"tag_name": "v4.0.0",
"html_url": "https://github.com/upx/upx/releases/tag/v4.0.0",
"assets": [
"https://github.com/upx/upx/releases/download/v4.0.0/upx-4.0.0-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.0/upx-4.0.0-arm64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.0/upx-4.0.0-arm_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.0/upx-4.0.0-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.0/upx-4.0.0-dos.zip",
"https://github.com/upx/upx/releases/download/v4.0.0/upx-4.0.0-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.0/upx-4.0.0-mips_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.0/upx-4.0.0-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.0/upx-4.0.0-powerpc64le_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.0/upx-4.0.0-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.0/upx-4.0.0-src.tar.xz",
"https://github.com/upx/upx/releases/download/v4.0.0/upx-4.0.0-win32.zip",
"https://github.com/upx/upx/releases/download/v4.0.0/upx-4.0.0-win64.zip"
]
},
"v3.99": {
"id": 81217748,
"tag_name": "v3.99",
"html_url": "https://github.com/upx/upx/releases/tag/v3.99",
"assets": [
"https://github.com/upx/upx/releases/download/v3.99/upx-3.99-src.tar.xz"
]
},
"v3.96": {
"id": 23054413,
"tag_name": "v3.96",
"html_url": "https://github.com/upx/upx/releases/tag/v3.96",
"assets": [
"https://github.com/upx/upx/releases/download/v3.96/upx-3.96-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.96/upx-3.96-arm64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.96/upx-3.96-arm_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.96/upx-3.96-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.96/upx-3.96-dos.zip",
"https://github.com/upx/upx/releases/download/v3.96/upx-3.96-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.96/upx-3.96-mips_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.96/upx-3.96-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.96/upx-3.96-powerpc64le_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.96/upx-3.96-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.96/upx-3.96-src.tar.xz",
"https://github.com/upx/upx/releases/download/v3.96/upx-3.96-win32.zip",
"https://github.com/upx/upx/releases/download/v3.96/upx-3.96-win64.zip"
]
},
"v3.95": {
"id": 12577195,
"tag_name": "v3.95",
"html_url": "https://github.com/upx/upx/releases/tag/v3.95",
"assets": [
"https://github.com/upx/upx/releases/download/v3.95/upx-3.95-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.95/upx-3.95-arm64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.95/upx-3.95-arm_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.95/upx-3.95-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.95/upx-3.95-dos.zip",
"https://github.com/upx/upx/releases/download/v3.95/upx-3.95-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.95/upx-3.95-mips_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.95/upx-3.95-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.95/upx-3.95-powerpc64le_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.95/upx-3.95-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.95/upx-3.95-src.tar.xz",
"https://github.com/upx/upx/releases/download/v3.95/upx-3.95-win32.zip",
"https://github.com/upx/upx/releases/download/v3.95/upx-3.95-win64.zip"
]
},
"v3.94": {
"id": 6366171,
"tag_name": "v3.94",
"html_url": "https://github.com/upx/upx/releases/tag/v3.94",
"assets": [
"https://github.com/upx/upx/releases/download/v3.94/upx-3.94-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.94/upx-3.94-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.94/upx-3.94-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.94/upx-3.94-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.94/upx-3.94-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.94/upx-3.94-src.tar.xz",
"https://github.com/upx/upx/releases/download/v3.94/upx394a.zip",
"https://github.com/upx/upx/releases/download/v3.94/upx394d.zip",
"https://github.com/upx/upx/releases/download/v3.94/upx394w.zip",
"https://github.com/upx/upx/releases/download/v3.94/upx394wce.zip"
]
},
"v3.93": {
"id": 5296538,
"tag_name": "v3.93",
"html_url": "https://github.com/upx/upx/releases/tag/v3.93",
"assets": [
"https://github.com/upx/upx/releases/download/v3.93/upx-3.93-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.93/upx-3.93-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.93/upx-3.93-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.93/upx-3.93-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.93/upx-3.93-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.93/upx-3.93-src.tar.xz",
"https://github.com/upx/upx/releases/download/v3.93/upx393a.zip",
"https://github.com/upx/upx/releases/download/v3.93/upx393d.zip",
"https://github.com/upx/upx/releases/download/v3.93/upx393w.zip",
"https://github.com/upx/upx/releases/download/v3.93/upx393wce.zip"
]
},
"v3.92": {
"id": 4888235,
"tag_name": "v3.92",
"html_url": "https://github.com/upx/upx/releases/tag/v3.92",
"assets": [
"https://github.com/upx/upx/releases/download/v3.92/upx-3.92-amd64_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.92/upx-3.92-armeb_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.92/upx-3.92-i386_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.92/upx-3.92-mipsel_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.92/upx-3.92-powerpc_linux.tar.xz",
"https://github.com/upx/upx/releases/download/v3.92/upx-3.92-src.tar.xz",
"https://github.com/upx/upx/releases/download/v3.92/upx392a.zip",
"https://github.com/upx/upx/releases/download/v3.92/upx392d.zip",
"https://github.com/upx/upx/releases/download/v3.92/upx392w.zip",
"https://github.com/upx/upx/releases/download/v3.92/upx392wce.zip"
]
},
"v3.91": {
"id": 4087014,
"tag_name": "v3.91",
"html_url": "https://github.com/upx/upx/releases/tag/v3.91",
"assets": [
"https://github.com/upx/upx/releases/download/v3.91/upx-3.91-amd64_linux.tar.bz2",
"https://github.com/upx/upx/releases/download/v3.91/upx-3.91-armeb_linux.tar.bz2",
"https://github.com/upx/upx/releases/download/v3.91/upx-3.91-i386_linux.tar.bz2",
"https://github.com/upx/upx/releases/download/v3.91/upx-3.91-mipsel_linux.tar.bz2",
"https://github.com/upx/upx/releases/download/v3.91/upx-3.91-powerpc_linux.tar.bz2",
"https://github.com/upx/upx/releases/download/v3.91/upx-3.91-src.tar.bz2",
"https://github.com/upx/upx/releases/download/v3.91/upx391a.zip",
"https://github.com/upx/upx/releases/download/v3.91/upx391d.zip",
"https://github.com/upx/upx/releases/download/v3.91/upx391w.zip",
"https://github.com/upx/upx/releases/download/v3.91/upx391wce.zip"
]
},
"v3.00": {
"id": 4258222,
"tag_name": "v3.00",
"html_url": "https://github.com/upx/upx/releases/tag/v3.00",
"assets": []
}
}

View File

@ -1,16 +1,8 @@
name: ci
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 * * *'
- cron: '0 10 * * *' # everyday at 10am
push:
branches:
- 'master'
@ -18,8 +10,9 @@ on:
tags:
- 'v*'
pull_request:
paths-ignore:
- '.github/upx-releases.json'
branches:
- 'master'
- 'releases/v*'
jobs:
ci:
@ -36,7 +29,7 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v3
-
name: Download files
shell: bash
@ -58,30 +51,3 @@ jobs:
files: |
./bin/firefox-history-merger*
args: -fq
install-only:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
version:
- latest
- v4.0.2
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: UPX
uses: ./
with:
version: ${{ matrix.version }}
install-only: true
-
name: Verify
run: |
which upx
upx --version

View File

@ -1,13 +1,5 @@
name: labels
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:
@ -15,25 +7,14 @@ on:
paths:
- '.github/labels.yml'
- '.github/workflows/labels.yml'
pull_request:
paths:
- '.github/labels.yml'
- '.github/workflows/labels.yml'
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
with:
dry-run: ${{ github.event_name == 'pull_request' }}
uses: crazy-max/ghaction-github-labeler@v3

View File

@ -1,21 +1,14 @@
name: test
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'
branches:
- 'master'
- 'releases/v*'
jobs:
test:
@ -23,16 +16,19 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v3
-
name: Validate
uses: docker/bake-action@v2
with:
targets: validate
-
name: Test
uses: docker/bake-action@v6
uses: docker/bake-action@v2
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

@ -1,66 +0,0 @@
name: upx-releases-json
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:
- cron: '0 */12 * * *'
push:
branches:
- 'master'
pull_request:
paths-ignore:
- '.github/upx-releases.json'
jobs:
generate:
uses: crazy-max/.github/.github/workflows/releases-json.yml@fa6141aedf23596fb8bdcceab9cce8dadaa31bd9
with:
repository: upx/upx
artifact_name: upx-releases-json
filename: upx-releases.json
secrets: inherit
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
-
name: Download
uses: actions/download-artifact@v4
with:
name: upx-releases-json
path: .github
-
name: Commit changes
run: |
git add -A .
-
name: Create PR
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
with:
base: master
branch: bot/upx-releases-json
commit-message: "update .github/upx-releases.json"
signoff: true
delete-branch: true
title: "Update `.github/upx-releases.json`"
body: |
Update `.github/upx-releases.json` to keep in sync with [https://github.com/upx/upx](https://github.com/upx/upx).
draft: false

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"

55
CHANGELOG.md Normal file
View File

@ -0,0 +1,55 @@
# Changelog
## 1.5.0 (2022/05/26)
* Update dev dependencies and workflow (#168)
* Bump @actions/core from 1.2.6 to 1.6.0 (#142 #158 #161)
* Bump @actions/exec from 1.0.4 to 1.1.1 (#152 #164)
* Bump @actions/tool-cache from 1.6.1 to 1.7.2 (#151 #165)
* Bump minimist from 1.2.5 to 1.2.6 (#166)
* Bump ansi-regex from 5.0.0 to 5.0.1 (#160)
* Bump tmpl from 1.0.4 to 1.0.5 (#159)
* Bump path-parse from 1.0.6 to 1.0.7 (#157)
* Bump hosted-git-info from 2.8.8 to 2.8.9 (#154)
* Bump ws from 7.3.0 to 7.5.0 (#155)
* Bump lodash from 4.17.20 to 4.17.21 (#153)
* Bump y18n from 4.0.0 to 4.0.3 (#143)
## 1.4.0 (2021/03/27)
* Allow multiple files (#140)
* Container dev workflow (#139)
* Bump node-notifier from 8.0.0 to 8.0.1 (#135)
* Bump @actions/tool-cache from 1.6.0 to 1.6.1 (#134)
* Bump @actions/http-client from 1.0.8 to 1.0.11 (#131 #138)
## 1.3.3 (2020/10/01)
* Fix CVE-2020-15228
## 1.3.2 (2020/05/11)
* Update README
## 1.3.1 (2020/05/07)
* Code cleanup
## 1.3.0 (2020/05/06)
* Use native tools
* Add Codecov
* Update deps
## 1.2.0 (2020/04/09)
* Use ncc and clean workflows
* Update deps
## 1.1.0 (2020/01/17)
* Update deps
## 1.0.0 (2020/01/17)
* Initial version

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2020-2025 CrazyMax
Copyright (c) 2020-2022 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

@ -1,6 +1,6 @@
[![GitHub release](https://img.shields.io/github/release/crazy-max/ghaction-upx.svg?style=flat-square)](https://github.com/crazy-max/ghaction-upx/releases/latest)
[![GitHub marketplace](https://img.shields.io/badge/marketplace-upx--github--action-blue?logo=github&style=flat-square)](https://github.com/marketplace/actions/upx-github-action)
[![Test workflow](https://img.shields.io/github/actions/workflow/status/crazy-max/ghaction-upx/test.yml?branch=master&label=test&logo=github&style=flat-square)](https://github.com/crazy-max/ghaction-upx/actions?workflow=test)
[![Test workflow](https://img.shields.io/github/workflow/status/crazy-max/ghaction-upx/test?label=test&logo=github&style=flat-square)](https://github.com/crazy-max/ghaction-upx/actions?workflow=test)
[![Codecov](https://img.shields.io/codecov/c/github/crazy-max/ghaction-upx?logo=codecov&style=flat-square)](https://codecov.io/gh/crazy-max/ghaction-upx)
[![Become a sponsor](https://img.shields.io/badge/sponsor-crazy--max-181717.svg?logo=github&style=flat-square)](https://github.com/sponsors/crazy-max)
[![Paypal Donate](https://img.shields.io/badge/donate-paypal-00457c.svg?logo=paypal&style=flat-square)](https://www.paypal.me/crazyws)
@ -34,10 +34,10 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v2
-
name: Run UPX
uses: crazy-max/ghaction-upx@v3
uses: crazy-max/ghaction-upx@v1
with:
version: latest
files: |
@ -45,43 +45,17 @@ jobs:
args: -fq
```
If you just want to install UPX:
```yaml
name: upx
on:
push:
jobs:
upx:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install UPX
uses: crazy-max/ghaction-upx@v3
with:
install-only: true
-
name: UPX version
run: upx --version
```
## Customizing
### inputs
The following inputs can be used as `step.with` keys
Following inputs can be used as `step.with` keys
| Name | Type | Default | Description |
|----------------|--------|----------|------------------------------------------------------------|
| `version` | String | `latest` | UPX version. Example: `v3.95` |
| `files` | String | | Newline-delimited list of path globs for files to compress |
| `args` | String | | Arguments to pass to UPX |
| `install-only` | String | `false` | Just install UPX |
| Name | Type | Default | Description |
|---------------|---------|-----------|---------------------------------|
| `version` | String | `latest` | UPX version. Example: `v3.95` |
| `files` | String | | Newline-delimited list of path globs for files to compress (**required**) |
| `args` | String | | Arguments to pass to UPX |
## Limitation
@ -89,10 +63,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:

16
__tests__/github.test.ts Normal file
View File

@ -0,0 +1,16 @@
import {describe, expect, it} from '@jest/globals';
import * as github from '../src/github';
describe('github', () => {
it('returns latest UPX GitHub release', async () => {
const release = await github.getRelease('latest');
expect(release).not.toBeNull();
expect(release?.tag_name).not.toEqual('');
});
it('returns v3.96 GoReleaser GitHub release', async () => {
const release = await github.getRelease('v3.96');
expect(release).not.toBeNull();
expect(release?.tag_name).toEqual('v3.96');
});
});

View File

@ -2,30 +2,6 @@ import {describe, expect, it} from '@jest/globals';
import * as fs from 'fs';
import * as installer from '../src/installer';
describe('getRelease', () => {
it('returns latest UPX GitHub release', async () => {
const release = await installer.getRelease('latest');
expect(release).not.toBeNull();
expect(release?.tag_name).not.toEqual('');
});
it('returns v3.95 UPX GitHub release', async () => {
const release = await installer.getRelease('v3.95');
expect(release).not.toBeNull();
expect(release?.id).toEqual(12577195);
expect(release?.tag_name).toEqual('v3.95');
expect(release?.html_url).toEqual('https://github.com/upx/upx/releases/tag/v3.95');
});
it('unknown release', async () => {
await expect(installer.getRelease('foo')).rejects.toThrow(
new Error(
'Cannot find UPX release foo in https://raw.githubusercontent.com/crazy-max/ghaction-upx/master/.github/upx-releases.json'
)
);
});
});
describe('installer', () => {
it('acquires v3.95 version of UPX', async () => {
const upx = await installer.getUPX('v3.95');

View File

@ -21,12 +21,7 @@ inputs:
deprecationMessage: 'file is deprecated. Please use files input instead.'
description: 'File to compress'
required: false
install-only:
description: 'Just install upx'
default: 'false'
required: false
runs:
using: 'node20'
using: 'node12'
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=12
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

28
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,11 +361,11 @@ 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-2016 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

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.6.0",
"@actions/exec": "^1.1.1",
"@actions/http-client": "^2.2.3",
"@actions/tool-cache": "^2.0.2"
"@actions/http-client": "^1.0.11",
"@actions/tool-cache": "^1.7.2"
},
"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

@ -6,15 +6,13 @@ export interface Inputs {
version: string;
files: string[];
args: string;
installOnly: boolean;
}
export async function getInputs(): Promise<Inputs> {
return {
version: core.getInput('version') || 'latest',
files: getInputList(core.getInput('files') || core.getInput('file'), true),
args: core.getInput('args'),
installOnly: core.getBooleanInput('install-only')
args: core.getInput('args')
};
}

12
src/github.ts Normal file
View File

@ -0,0 +1,12 @@
import * as httpm from '@actions/http-client';
export interface GitHubRelease {
id: number;
tag_name: string;
}
export const getRelease = async (version: string): Promise<GitHubRelease | null> => {
const url = `https://github.com/upx/upx/releases/${version}`;
const http: httpm.HttpClient = new httpm.HttpClient('ghaction-upx');
return (await http.getJson<GitHubRelease>(url)).result;
};

View File

@ -1,40 +1,22 @@
import * as os from 'os';
import * as path from 'path';
import * as util from 'util';
import * as github from './github';
import * as core from '@actions/core';
import * as httpm from '@actions/http-client';
import * as tc from '@actions/tool-cache';
const osPlat: string = os.platform();
const osArch: string = os.arch();
export interface GitHubRelease {
id: number;
tag_name: string;
html_url: string;
assets: Array<string>;
}
export const getRelease = async (version: string): Promise<GitHubRelease> => {
const url = `https://raw.githubusercontent.com/crazy-max/ghaction-upx/master/.github/upx-releases.json`;
const http: httpm.HttpClient = new httpm.HttpClient('ghaction-upx');
const resp: httpm.HttpClientResponse = await http.get(url);
const body = await resp.readBody();
const statusCode = resp.message.statusCode || 500;
if (statusCode >= 400) {
throw new Error(`Failed to get UPX release ${version} from ${url} with status code ${statusCode}: ${body}`);
}
const releases = <Record<string, GitHubRelease>>JSON.parse(body);
if (!releases[version]) {
throw new Error(`Cannot find UPX release ${version} in ${url}`);
}
return releases[version];
};
export async function getUPX(version: string): Promise<string> {
const release: GitHubRelease = await getRelease(version);
core.startGroup(`Checking UPX ${version} release...`);
const release: github.GitHubRelease | null = await github.getRelease(version);
if (!release) {
throw new Error(`Cannot find UPX ${version} release`);
}
const semver: string = release.tag_name.replace(/^v/, '');
core.info(`UPX ${semver} found`);
core.endGroup();
const filename = util.format('%s.%s', getName(semver), osPlat == 'win32' ? 'zip' : 'tar.xz');
const downloadUrl = util.format('https://github.com/upx/upx/releases/download/v%s/%s', semver, filename);
@ -63,30 +45,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,5 +1,4 @@
import * as os from 'os';
import * as path from 'path';
import * as context from './context';
import * as installer from './installer';
import * as core from '@actions/core';
@ -15,13 +14,6 @@ async function run(): Promise<void> {
const inputs: context.Inputs = await context.getInputs();
const upx = await installer.getUPX(inputs.version);
if (inputs.installOnly) {
const dir = path.dirname(upx);
core.addPath(dir);
core.debug(`Added ${dir} to PATH`);
return;
}
const files: string[] = context.resolvePaths(inputs.files);
if (files.length == 0) {
core.warning(`No files were found. Please check the 'files' input.`);

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,

9133
yarn.lock

File diff suppressed because it is too large Load Diff