Files
setup-beam/.github/workflows/action.yml
T
Paulo F. Oliveira 8fc1380bb7 Fix calculating -otp- major for Elixir (#351)
* Set expectations

* Ease testing without having to install via `require`

* Code a solution for the tests

* Avoid errors on unit tests

rebar3 is saying something about SSL, most likely because
our tests are installing a bunch of OTPs which makes
for unpredictable behavior

* Avoid errors on integration tests
2025-07-01 22:13:13 +01:00

104 lines
2.6 KiB
YAML

---
name: action
permissions:
contents: read
on:
push:
branches:
- main
pull_request:
branches:
- '*'
workflow_dispatch: {}
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
jobs:
version:
name: Version with commit unique id
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
permissions:
contents: write
steps:
- uses: actions/checkout@v4.2.2
- name: Version it!
run: |
# We expect a string such as const setupBeamVersion = 'undefined' in the code
SHA=$(git rev-parse --short HEAD)
sed -i'.bak' \
-e "s/const setupBeamVersion = '.*'/const setupBeamVersion = '${SHA}'/g" \
src/setup-beam.js
npm run build-dist
git config user.name "GitHub Actions"
git config user.email "actions@user.noreply.github.com"
git add src/setup-beam.js
git add dist/index.js
git commit -m "Automation: update setup-beam version output to ${SHA}"
git push origin main
check_integrity:
name: Expected local npm actions
runs-on: ubuntu-latest
if: github.ref != 'refs/heads/main'
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/setup-node@v4.4.0
with:
node-version: '20'
- run: npm run build-dist
- name: Check if build left artifacts
run: git diff --exit-code --ignore-space-at-eol
check_action:
name: Action
runs-on: ubuntu-latest
if: github.ref != 'refs/heads/main'
steps:
- uses: actions/checkout@v4.2.2
- uses: raven-actions/actionlint@v2.0.1
unit_tests_ubuntu:
name: Unit tests (Ubuntu)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/setup-node@v4.4.0
with:
node-version: '20'
- run: npm ci
- run: npm test
- name: .tool-versions test
id: setup-beam
uses: ./
with:
install-rebar: false
install-hex: false
version-file: test/.tool-versions
version-type: strict
unit_tests_windows:
name: Unit tests (Windows)
runs-on: windows-latest
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/setup-node@v4.4.0
with:
node-version: '20'
- run: npm install --production
- run: npm test
unit_tests_macos:
name: Unit tests (macOS)
runs-on: macos-latest
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/setup-node@v4.4.0
with:
node-version: '20'
- run: npm ci
- run: npm test