https://github.com/stevenwdv/setup-fasm
GitHub Action to set up the flat assembler compiler
https://github.com/stevenwdv/setup-fasm
fasm github-actions setup-script
Last synced: 26 days ago
JSON representation
GitHub Action to set up the flat assembler compiler
- Host: GitHub
- URL: https://github.com/stevenwdv/setup-fasm
- Owner: stevenwdv
- License: mit
- Created: 2022-04-30T16:57:58.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2026-03-01T17:19:43.000Z (26 days ago)
- Last Synced: 2026-03-01T19:41:53.701Z (26 days ago)
- Topics: fasm, github-actions, setup-script
- Language: TypeScript
- Homepage:
- Size: 1.84 MB
- Stars: 11
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
setup-fasm
==========
This action downloads the specified edition and version of [flat assembler](https://flatassembler.net/) and adds it to PATH.
Available for Windows, Linux, and \*nix systems supporting ELF binaries (not macOS).
Usage
-----
Use latest fasm 1 version:
```yaml
- uses: stevenwdv/setup-fasm@v1
- name: Test fasm
run: fasm
```
Note: Executable name may differ. `fasm.x64` may also be available on x86-64 Linux. Use `fasm.o` for \*nix systems (none currently supported by GitHub).
Use latest fasm g version with some packages:
```yaml
- uses: stevenwdv/setup-fasm@v1
with:
edition: fasmg
fasmg-download-packages: true
fasmg-include-packages: utility,x86
- name: Test fasm g
run: fasmg
```
The `fasmg-download-packages` input specifies that [`tgrysztar/fasmg/packages`](https://github.com/tgrysztar/fasmg/tree/master/packages) should be downloaded (and can also be a commit hash, for example). By default, this directory then gets added to the `INCLUDE` environment variable such that you can use e.g. `include 'x86/win64w.inc'`, but you can also include specific packages using `fasmg-include-packages` such that you can include files in these directly, like `include 'win64w.inc'`.
FASMARM & fasm 2 are also available.
Use specific version (accepts wildcard at the end):
```yaml
- uses: stevenwdv/setup-fasm@v1
with:
edition: fasm1
version: 1.71.*
```
Additional notes
----------------
Not all versions are archived (for all platforms). This utility searches https://flatassembler.net/, http://fasm.sourceforge.net/archive/recent/, and http://comrade.ownz.com/docs/fasm.html#pastversions for archived versions, as long as the version number is found in [`stevenwdv/fasm-versions/fasm_versions.json`](https://github.com/stevenwdv/fasm-versions/blob/v1/fasm_versions.json). Note that while some archives only support insecure HTTP, this script checks the hash of the downloaded file to make sure it has not been tampered with.
For FASMARM & fasm 2, only an unnamed latest version is available. In this case, no hash check is done.
To download unknown versions, set `version` to a specific version number without wildcards and set the `download-unknown` input to one of the following values:
- `secure`: Allow downloading unknown versions via a secure connection (but not all archives support HTTPS).
- _some [BLAKE2](https://www.blake2.net/)b-512 hash_: Allow downloading unknown versions via any connection, but verify that the hash corresponds to the given value.
- `insecure`: Allow downloading unknown versions via any, possibly insecure, connection (not recommended except for testing).
This script automatically sets the `INCLUDE` environment variable to the path of the `INCLUDE` folder in the fasm installation, if one exists, unless the `set-include-envvar` input is set to `false`.
See [`action.yml`](https://github.com/stevenwdv/setup-fasm/blob/main/action.yml) for all inputs and outputs of this action.