ci: clean pkg dir #289
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ci | ||
on: [push, pull_request] | ||
jobs: | ||
clean-pkg-dir: | ||
runs-on: ubuntu-latest | ||
steps: | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: clean pkg/ dir | ||
run: | | ||
rm pkg/*.gem # | ||
native-gems: | ||
needs: clean-pkg-dir | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
ruby: [2.7, 3.0, 3.1, 3.2] | ||
platform: | ||
- { os: ubuntu, target: linux-x64 } | ||
- { os: macos, target: macos-x64 } | ||
runs-on: ${{ matrix.platform.os }}-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: setup ruby ${{ matrix.ruby }} | ||
uses: ruby/setup-ruby@v1 | ||
with: | ||
ruby-version: ${{ matrix.ruby }} | ||
- name: build and install tree-sitter | ||
run: | | ||
git clone https://github.com/tree-sitter/tree-sitter | ||
cd tree-sitter | ||
git checkout tags/v0.20.8 | ||
make | ||
sudo make install | ||
sudo rm /usr/local/lib/libtree-sitter.a | ||
- name: ldconfig | ||
if: ${{ matrix.platform.os == 'ubuntu' }} | ||
run: | | ||
sudo ldconfig -v | ||
- name: bundle install | ||
run: | | ||
bundle install | ||
- name: compile | ||
env: | ||
PLATFORM: ${{ matrix.platform.target }} | ||
run: | | ||
bundle exec rake compile | ||
- name: test | ||
env: | ||
PLATFORM: ${{ matrix.platform.target }} | ||
run: | | ||
bundle exec rake test | ||
- name: package native gem | ||
run: | | ||
rake native gem | ||
for file in pkg/*.gem; do mv $file ${file%.*}-mri-${{ matrix.ruby }}.gem; done; | ||
- name: release | ||
if: github.event_name != 'pull_request' | ||
uses: softprops/action-gh-release@v1 | ||
with: | ||
tag_name: ${{ github.ref }}-${{ steps.vars.outputs.sha_short }} | ||
draft: true | ||
files: | | ||
./pkg/* | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
# - We need this seperate step for now to avoid duplicate uploads on release | ||
# - We're not testing here also because it's been taken care of in the previous | ||
# step | ||
install-only-gem: | ||
needs: clean-pkg-dir | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: setup ruby | ||
uses: ruby/setup-ruby@v1 | ||
with: | ||
ruby-version: 3.2 | ||
- name: build and install tree-sitter | ||
run: | | ||
git clone https://github.com/tree-sitter/tree-sitter | ||
cd tree-sitter | ||
git checkout tags/v0.20.8 | ||
make | ||
sudo make install | ||
sudo rm /usr/local/lib/libtree-sitter.a | ||
sudo ldconfig -v | ||
- name: bundle install | ||
run: | | ||
bundle install | ||
- name: compile | ||
env: | ||
PLATFORM: linux-x64 | ||
run: | | ||
bundle exec rake compile | ||
- name: test | ||
env: | ||
PLATFORM: linux-x64 | ||
run: | | ||
bundle exec rake test | ||
- name: package native gem | ||
run: | | ||
rake gem | ||
- name: release | ||
if: github.event_name != 'pull_request' | ||
uses: softprops/action-gh-release@v1 | ||
with: | ||
tag_name: ${{ github.ref }}-${{ steps.vars.outputs.sha_short }} | ||
draft: true | ||
files: | | ||
./pkg/* | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
disable-sys-libs: | ||
needs: clean-pkg-dir | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
ruby: [2.7, 3.0, 3.1, 3.2] | ||
platform: | ||
- { os: ubuntu, target: linux-x64, ext: so } | ||
- { os: macos, target: macos-x64, ext: dylib } | ||
runs-on: ${{ matrix.platform.os }}-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: setup ruby ${{ matrix.ruby }} | ||
uses: ruby/setup-ruby@v1 | ||
with: | ||
ruby-version: ${{ matrix.ruby }} | ||
- name: downloaded pre-compiled parsers | ||
run: | | ||
mkdir -p tree-sitter-parsers | ||
wget https://github.com/Faveod/tree-sitter-parsers/releases/download/v2.1/libtree-sitter-embedded-template-${{ matrix.platform.target }}.${{ matrix.platform.ext }} -O tree-sitter-parsers/libtree-sitter-embedded-template.${{ matrix.platform.ext }} | ||
wget https://github.com/Faveod/tree-sitter-parsers/releases/download/v2.1/libtree-sitter-html-${{ matrix.platform.target }}.${{ matrix.platform.ext }} -O tree-sitter-parsers/libtree-sitter-html.${{ matrix.platform.ext }} | ||
wget https://github.com/Faveod/tree-sitter-parsers/releases/download/v2.1/libtree-sitter-javascript-${{ matrix.platform.target }}.${{ matrix.platform.ext }} -O tree-sitter-parsers/libtree-sitter-javascript.${{ matrix.platform.ext }} | ||
wget https://github.com/Faveod/tree-sitter-parsers/releases/download/v2.1/libtree-sitter-json-${{ matrix.platform.target }}.${{ matrix.platform.ext }} -O tree-sitter-parsers/libtree-sitter-json.${{ matrix.platform.ext }} | ||
wget https://github.com/Faveod/tree-sitter-parsers/releases/download/v2.1/libtree-sitter-ruby-${{ matrix.platform.target }}.${{ matrix.platform.ext }} -O tree-sitter-parsers/libtree-sitter-ruby.${{ matrix.platform.ext }} | ||
wget https://github.com/Faveod/tree-sitter-parsers/releases/download/v2.1/libtree-sitter-javascript-${{ matrix.platform.target }}.${{ matrix.platform.ext }} -O tree-sitter-parsers/libtree-sitter-javascript.${{ matrix.platform.ext }} | ||
- name: bundle install | ||
run: | | ||
bundle install | ||
- name: compile | ||
env: | ||
PLATFORM: ${{ matrix.platform.target }} | ||
run: | | ||
bundle exec rake compile -- --disable-sys-libs | ||
- name: test | ||
run: | | ||
bundle exec rake test | ||
- name: fresh project on PR | ||
if: github.event_name == 'pull_request' | ||
env: | ||
BRANCH: HEAD | ||
run: bin/ci-test-project | ||
- name: fresh project when not a PR | ||
if: github.event_name != 'pull_request' | ||
env: | ||
BRANCH: ${{ github.ref_name }} | ||
run: bin/ci-test-project |