Commit graph

61 commits

Author SHA1 Message Date
Will Lillis
1a2167b155 fix(ci): run generate crate unit tests 2025-07-06 17:05:21 -04:00
Max Brunsfeld
0fdf569571
Reorganize rust crates into a flat crates directory, simplify some CI steps (#4496)
* Move all rust crates (except lib) into crates dir, w/o nesting

* Remove stale path from .gitattributes

* Rename lib.rs files for easier navigation

* Rename mod.rs file for easier navigation

* Fix emscripten-version path

* Fix fixtures dir paths

* Use the default rustfmt settings

* Don't use nightly on CI
2025-06-06 14:25:37 -07:00
Simon Willshire
ee8d529552
fix(rust): use core crates for no_std
also add `no_std` build to CI
2025-03-25 14:30:32 +01:00
Antonin Décimo
f0571b1e33
feat: Windows support using MinGW-w64 (#4201)
Building tree-sitter on Windows within a Cygwin or MSYS2 environment
for MinGW-w64 targets should work. As there's no configure-like step,
the tools have to be specified with:

    make CC=x86_64-w64-mingw32-gcc \
         AR=x86_64-w64-mingw32-ar \
         STRIP=x86_64-w64-mingw32-strip

Useful reference:
[How to build and use DLLs on Windows](https://nullprogram.com/blog/2021/05/31/)

This commit doesn't tag public functions with dllexport or
dllimport. This results in exporting non-static functions visible
between translation units, and generating slightly less efficient code
for calling exported functions from the DLL.

This commit doesn't include support to build libtree-sitter with MSVC or
clang-cl, but generates a libtree-sitter.lib file for MSVC/clang-cl
consumers.
2025-02-12 16:31:06 -08:00
Amaan Qureshi
8e79929cb8 ci: remove benchmark step
We don't actually use this data, it runs without a purpose
2025-02-11 22:56:50 -05:00
Amaan Qureshi
0a33135483 ci: rename web files, and upload a tarball for web-tree-sitter assets 2025-02-11 22:56:50 -05:00
Amaan Qureshi
ac8a4ba80e ci: use ubuntu-22.04 for x64 builds 2025-02-01 14:27:58 -05:00
Amaan Qureshi
aa900bf6ed ci: go back to emulating linux arm64
These runners segfault when running basic rustc commands, we're not
using these till GH gets it together.
2025-01-25 03:20:43 -05:00
Amaan Qureshi
a4b20c1c56 feat: publish both CJS and ESM files
This way, users can pick whichever one works for their needs
2025-01-21 12:36:15 -05:00
Amaan Qureshi
a633a06bb4 ci: add arm ubuntu runner, & use latest runners 2025-01-19 22:13:09 -05:00
Amaan Qureshi
490f79bca2 ci: don't install cross if it already exists 2024-12-29 00:54:16 -05:00
Will Lillis
c7b218838d
fix: minor issues with CI
* update ctor

* pass empty `RUSTFLAGS` when installing cross, overriding
the default `-D warnings`

* fix some clippy lints

* create `target` directory before curling wasmtime lib
2024-12-03 16:41:38 -05:00
ObserverOfTime
60c5057617 ci: build lib with wasmtime 2024-10-19 02:57:08 +00:00
ObserverOfTime
e8e56255bd ci: major overhaul
- Simplify some workflow steps and auxiliary scripts
- Build library using cmake when not cross-compiling
- Try to fetch fixtures from cache first
- Use `actions-rust-lang/setup-rust-toolchain`
2024-10-11 18:33:07 -04:00
Amaan Qureshi
dbe8bbf480 feat: move scripts to xtasks 2024-10-08 21:07:41 -04:00
ObserverOfTime
055d0cbd34
feat(dsl)!: support other JS runtimes 2024-05-24 16:53:33 -04:00
ObserverOfTime
572cdaa7c0 ci: fix address sanitizer step 2024-05-05 13:06:45 -04:00
dundargoc
a1c39d4760 ci: simplify workflows 2024-03-16 19:54:54 -04:00
dundargoc
d4067a6ae6 ci: cache fixtures
Only generate fixtures if any grammar from any parser or the parser
generation itself has changed.
2024-02-18 23:08:24 +01:00
Amaan Qureshi
0afa891ffc ci: use the native m1 mac runner 2024-02-11 01:59:56 -05:00
dundargoc
77d7843b7b ci: remove minimum glibc information in summary page
It clutters up the page with unnecessary information. This information
can be provided as release notes or another form if needed.
2024-02-10 18:50:12 +01:00
dundargoc
c3ab70cc98 ci: rework release strategy
Switch the release trigger from PR to a git tag. In practice this would
mean tagging a commit in master branch and pushing it with
`git push --tags`.

The benefit of this is that tagging is already an event that is reserved
for maintainers, so we can remove the need for verifying whether the
event was done by a maintainer.

We also no longer need to keep track of the tag. Previously the trigger
was a PR which has a different ref from the tag, so manual bookkeeping
was required to ensure github used the tag reference instead of the PR
reference. Having the tagging itself be the trigger removes this need
entirely as the default checkout will already use the tag as reference.
2024-02-06 14:48:50 +01:00
dundargoc
9d8e31bf9f ci: add timeout to build.yml
This will abort the run early if it gets caught in an infinite loop
during testing.
2024-02-05 23:19:36 +01:00
dundargoc
7b0b2464cd ci: remove workflow_dispatch from build.yml
The cases where you'd need to manually run tests with specific
parameters should be rare.
2024-02-05 20:15:56 +01:00
dundargoc
fdd0e21041 ci: add caching to build.yml 2024-02-05 00:52:18 +01:00
Amaan Qureshi
dd2dc236c4
Merge pull request #2909 from tree-sitter/dependabot/github_actions/mymindstorm/setup-emsdk-14
ci: bump mymindstorm/setup-emsdk from 12 to 14
2024-02-04 13:24:03 -05:00
dundargoc
003521895d ci(checks): use rust-cache action to cache dependencies 2024-02-04 17:31:14 +01:00
Amaan Qureshi
72a75326f7
Merge pull request #2910 from tree-sitter/dependabot/github_actions/actions/checkout-4
ci: bump actions/checkout from 3 to 4
2024-02-04 05:03:09 -05:00
dependabot[bot]
98f3ecc9d6
ci: bump mymindstorm/setup-emsdk from 12 to 14
Bumps [mymindstorm/setup-emsdk](https://github.com/mymindstorm/setup-emsdk) from 12 to 14.
- [Release notes](https://github.com/mymindstorm/setup-emsdk/releases)
- [Commits](https://github.com/mymindstorm/setup-emsdk/compare/v12...v14)

---
updated-dependencies:
- dependency-name: mymindstorm/setup-emsdk
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-04 10:03:00 +00:00
Amaan Qureshi
5478ced3b5
Merge pull request #2908 from tree-sitter/dependabot/github_actions/actions/upload-artifact-4
ci: bump actions/upload-artifact from 3 to 4
2024-02-04 05:02:05 -05:00
Amaan Qureshi
55afb4efaf
ci: remove unnecessary targets 2024-02-04 04:19:09 -05:00
dependabot[bot]
12b3567092
ci: bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-04 03:23:58 +00:00
dependabot[bot]
1b333603c7
ci: bump actions/upload-artifact from 3 to 4
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-03 23:16:33 +00:00
Max Brunsfeld
bfb966e2e0 Enable wasm feature when running tests on CI 2023-12-31 10:06:03 -08:00
Max Brunsfeld
bd0796d11d Remove mips targets from CI workflow 2023-11-24 20:06:36 -08:00
Max Brunsfeld
adb0e6958e Only enable wasm feature on CI for supported architectures 2023-10-31 17:13:50 -07:00
Max Brunsfeld
f4e2f68f14 Merge branch 'master' into wasm-language 2023-10-27 12:11:43 +01:00
Andrew Hlynskyi
a91a6cc615 cicd: disable failed linux-riscv64gc target
Related issue #2712
2023-10-16 16:13:40 +03:00
Andrew Hlynskyi
5c5de9ca61 cicd: rename runtime to platform for better clarity 2023-08-25 17:36:03 +03:00
Andrew Hlynskyi
e985d0e743 cicd: pin rust toolchain to 1.71.1 for all mips targets 2023-08-25 17:36:03 +03:00
James McCoy
545ef842de
Remove -Werror from default CFLAGS
Production builds shouldn't include -Werror by default since that could
cause spurious build failures when there are toolchain updates.

CI uses -Werror to prevent warnings, so that should be sufficient.
2023-08-18 14:23:19 -04:00
Amaan Qureshi
77a8c56558
ci: add big-endian & some obscure architectures 2023-07-18 15:44:20 -04:00
Andrew Hlynskyi
e7a16ceb06 cicd: install Emscripten conditionally 2023-07-16 16:07:13 +03:00
Andrew Hlynskyi
6ab282b578 cicd: add armv7l target #1366#issuecomment-1503176694 2023-07-16 16:07:13 +03:00
Amaan Qureshi
c23ec2c3ae ci: add more architectures 2023-07-16 05:14:11 -04:00
Andrew Hlynskyi
1f42f1efc0 cicd: show info about minimal required GLIBC version for CLI 2023-05-20 00:53:31 +03:00
Andrew Hlynskyi
3af763e4be cicd: build - add a rust-test-threads number input parameter 2023-05-20 00:53:31 +03:00
Andrew Hlynskyi
fcbc3db1ab cicd: build - add a run-tests input parameter 2023-05-19 23:40:34 +03:00
Andrew Hlynskyi
b41c678da6 cicd: rollback runner version to link against older GLIBC 2023-05-19 01:25:46 +03:00
Andrew Hlynskyi
ebd80906fb cicd: a series of small improvements 2023-05-03 05:29:34 +03:00