mirror of
https://github.com/erlef/setup-beam.git
synced 2026-07-27 00:56:07 +00:00
4678b57fab
* Do a bit of YAMLlint'ing * Ease consumer cache invalidation By providing an output with the action version we ease cache invalidation on consumer, due to the fact we can now stop worrying about changes to the action's cache itself Might also be interesting for self-hosted runners... * Remove duplicates * Do further validations for robustness
74 lines
2.1 KiB
YAML
74 lines
2.1 KiB
YAML
---
|
|
name: action
|
|
|
|
on: [push, 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'
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- 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" \
|
|
dist/index.js
|
|
# it always starts by being 'undefined'
|
|
NEWVER=$(grep -oE "const setupBeamVersion = '.*'" dist/index.js | cut -d\' -f2)
|
|
if [ "$NEWVER" == "undefined" ]; then
|
|
exit 1
|
|
else
|
|
echo "Continuing... new version is ${NEWVER}"
|
|
fi
|
|
git config user.name "GitHub Actions"
|
|
git config user.email "actions@user.noreply.github.com"
|
|
git add dist/index.js
|
|
git commit -m "Update setup-beam version output to ${SHA}"
|
|
git push origin main
|
|
check_integrity:
|
|
name: Expected local npm actions
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version: '16'
|
|
- run: npm run build-dist
|
|
- name: Check if build left artifacts
|
|
run: git diff --exit-code --ignore-space-at-eol
|
|
|
|
unit_tests_ubuntu:
|
|
name: Unit tests (Ubuntu)
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version: '16'
|
|
- run: npm ci
|
|
- run: npm test
|
|
- name: .tool-versions test
|
|
id: setup-beam
|
|
uses: ./
|
|
with:
|
|
version-file: test/.tool-versions
|
|
version-type: strict
|
|
|
|
unit_tests_windows:
|
|
name: Unit tests (Windows)
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version: '16'
|
|
- run: npm install --production
|
|
- run: npm test
|