--- 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 - 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_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