No description
Find a file
dxtr bcdf1d60f6 Point action references at fakehacker/actions
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 21:34:56 +02:00
checkout Add node-less checkout and rebar3-ci composite actions 2026-06-17 21:33:59 +02:00
rebar3-ci Add node-less checkout and rebar3-ci composite actions 2026-06-17 21:33:59 +02:00
README.md Point action references at fakehacker/actions 2026-06-17 21:34:56 +02:00

forgejo-actions

Reusable composite actions for Forgejo Actions workflows.

Both actions are shell-only (no JavaScript), so they run inside bare language container images such as erlang:NN that ship without Node.js.

checkout

A node-less replacement for actions/checkout. It hand-rolls an authenticated git fetch using the default workflow token, so it works in containers where the JS-based actions/checkout cannot run.

Must be referenced remotely, never as a local ./checkout. A local action is read from the checked-out workspace — but this action is what populates the workspace, so it has to be fetched by the runner first.

- uses: fakehacker/actions/checkout@main
  # with:
  #   ref: ${{ github.ref }}   # ref to fetch
  #   fetch-depth: "1"         # 0 for full history
  #   token: ${{ github.token }}

rebar3-ci

Runs a standard Erlang/rebar3 quality gate: installs rebar3 if absent, then compile (warnings as errors), xref, eunit, and dialyzer.

- uses: fakehacker/actions/rebar3-ci@main

Example workflow

runs-on, container, and the OTP matrix stay in the caller — composite actions cannot declare them.

name: CI
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        otp: ['27', '28', '29']
    container:
      image: erlang:${{ matrix.otp }}
    steps:
      - uses: fakehacker/actions/checkout@main
      - uses: fakehacker/actions/rebar3-ci@main