Skip to content

Use Node.js v20

Use Node.js v20 #276

Workflow file for this run

name: Build, lint, test
on: [ push, pull_request ]
jobs:
build-lint:
name: Build & lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- name: Build
run: npm run build
- name: Check if setup.js up-to-date if this is not a regular push event
if: github.event_name != 'push'
run: git diff --exit-code -s -- dist/ || echo "::warning::setup.js should be updated"
- name: Lint
run: npm run lint-only
- uses: actions/upload-artifact@v4
with:
name: dist
path: dist/
retention-days: 1
commit-build:
name: Commit setup.js
if: github.event_name == 'push'
needs: build-lint
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: dist
path: dist/
- name: Commit setup.js
uses: EndBug/add-and-commit@v9
with:
message: Update setup.js
add: dist/
default_author: github_actions
author_name: Build bot
pathspec_error_handling: exitImmediately
test-fasm1:
name: Test install some fasm 1 versions
needs: build-lint
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest ]
version: [ latest, 1.73.* ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: dist
path: dist/
- name: Run setup-fasm
id: fasm
uses: ./
with:
edition: fasm1
version: ${{ matrix.version }}
fallback-to-previous-compatible: false
- name: Check installed version
run: |
(fasm.x64 || fasm || fasm.o || FASM.EXE) 2>/dev/null || true
(fasm.x64 || fasm || fasm.o || FASM.EXE) 2>&1 | grep -qF 'flat assembler version ${{ steps.fasm.outputs.version }}'
shell: sh
- name: Check INCLUDE envvar
if: matrix.os == 'windows-latest'
run: |
echo INCLUDE = $INCLUDE
[ -d "$INCLUDE" ]
shell: sh
test-fasmg:
name: Test install latest fasm g version
needs: build-lint
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: dist
path: dist/
- name: Run setup-fasm
id: fasm
uses: ./
with:
edition: fasmg
fallback-to-previous-compatible: false
fasmg-download-packages: true
fasmg-include-packages: utility, x86
- name: Check installed version
run: |
(fasmg.x64 || fasmg || fasmg.o || fasmg.exe) 2>/dev/null || true
(fasmg.x64 || fasmg || fasmg.o || fasmg.exe) 2>&1 | grep -qF 'flat assembler version g.${{ steps.fasm.outputs.version }}'
shell: sh
- name: Check INCLUDE envvar
run: |
echo INCLUDE = $INCLUDE
set -e
IFS=';' read -ra dirs <<< "$INCLUDE"
for dir in "${dirs[@]}"
do
[ -d "$dir" ] # Exists and is directory?
done
[ ${#dirs[@]} -eq 3 ] # 3 items (packages root, utility, x86)
shell: bash
test-fasmarm:
name: Test install latest FASMARM version
needs: build-lint
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: dist
path: dist/
- name: Run setup-fasm
id: fasm
uses: ./
with:
edition: fasmarm
fallback-to-previous-compatible: false
- name: Check installed version
run: |
(fasmarm.x64 || fasmarm || fasmarm.o || FASMARM.EXE) 2>/dev/null || true
(fasmarm.x64 || fasmarm || fasmarm.o || FASMARM.EXE) 2>&1 | grep -qF 'flat assembler for ARM'
shell: sh
- name: Check INCLUDE envvar
run: |
echo INCLUDE = $INCLUDE
[ -d "$INCLUDE" ]
shell: bash