make
(3.81 or later) is useful to run each tasks and reduce redundant builds/tests.
go build ./cmd/actionlint
./actionlint -h
or
make build
go test ./...
or
make test
staticcheck is used to lint Go sources.
staticcheck ./ ./cmd/...
or
make lint
Note that staticcheck ./...
is not available because it does not support syscall/js
yet. playground/main.go
hits
this issue.
Fuzz tests use go-fuzz. Install go-fuzz
and go-fuzz-build
in your system.
Since there are multiple fuzzing targets, -func
argument is necessary. Specify a target which you want to run.
# Create first corpus
go-fuzz-build ./fuzz
# Run fuzzer
go-fuzz -bin ./actionlint_fuzz-fuzz.zip -func FuzzParse
or
make fuzz FUZZ_FUNC=FuzzParse
When releasing v1.2.3 as example:
- Ensure all changes were already pushed to remote by checking
git push origin master
outputsEverything up-to-date
git tag v1.2.3 && git push origin v1.2.3
- Wait until the CI release job completes successfully:
- GoReleaser builds release binaries and make pre-release at GitHub and updates Homebrew formula
- The CI job also updates version string in
./scripts/download-actionlint.bash
- Open the pre-release at release page with browser
- Write up release notes, uncheck pre-release checkbox and publish the new release
- Run
git pull && changelog-from-release > CHANGELOG.md
locally to update CHANGELOG.md
actionlint.1
manual is generated from actionlint.1.ronn
by ronn.
ronn ./man/actionlint.1.ronn
or
make ./man/actionlint.1
Visit playground/README.md
.
Run deploy.bash
at root of repository. It does:
- Ensures to install dependencies and to build
main.wasm
- Copy all assets to
./playground-dist
directory - Optimize
main.wasm
withwasm-opt
which is a part of Binaryen toolchain - Switch branch to
gh-pages
- Move all files in
./playground-dist
to root of repository and add to repository - Make commit for deployment
# Prepare deployment
bash ./playground/deploy.bash
# Check it works fine by visiting localhost:1234
npm run serve
# If it looks good, deploy it
git push