Skip to content

ci: clean pkg dir

ci: clean pkg dir #289

Workflow file for this run

name: ci

Check failure on line 1 in .github/workflows/ci.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/ci.yml

Invalid workflow file

Invalid `steps` value - steps should be list of `uses` or `run` items
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