diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 097f9fb..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,82 +0,0 @@ -version: 2.1 -executors: - ruby: - parameters: - version: - description: "Ruby version number" - default: "3.4.1" - type: string - docker: - - image: cimg/ruby:<< parameters.version >> - -commands: - bundle_install: - description: Install Ruby dependencies with Bundler - parameters: - version: - description: "Ruby version number" - default: "3.4.1" - type: string - steps: - - restore_cache: - keys: - - bundle-v1-{{ arch }}-<< parameters.version >> - - run: - name: Install Ruby Dependencies - command: | - gem install bundler -v 2.6.2 --conservative --no-document - bundle config --local path vendor/bundle - bundle check || (bundle install --jobs=4 --retry=3 && bundle clean) - - save_cache: - paths: - - ./vendor/bundle - key: bundle-v1-{{ arch }}-<< parameters.version >>-{{ checksum "Gemfile.lock" }} - -jobs: - rubocop: - executor: ruby - steps: - - checkout - - bundle_install - - run: bundle exec rubocop - - test: - parameters: - version: - description: "Ruby version number" - default: "3.4.1" - type: string - executor: - name: ruby - version: << parameters.version >> - steps: - - checkout - - bundle_install: - version: << parameters.version >> - - run: bundle exec rake test - - store_test_results: - path: ./reports - -workflows: - version: 2 - commit-workflow: - jobs: - - rubocop - - test: - matrix: - parameters: - version: ["3.2.6", "3.3.6", "3.4.1"] - cron-workflow: - jobs: - - rubocop - - test: - matrix: - parameters: - version: ["3.2.6", "3.3.6", "3.4.1"] - triggers: - - schedule: - cron: "0 13 * * 6" - filters: - branches: - only: - - main diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..c356f6c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,53 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + +jobs: + rubocop: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: 4.0.0 + - name: Cache Ruby gems + uses: actions/cache@v3 + with: + path: vendor/bundle + key: ${{ runner.os }}-bundle-4.0.0-${{ hashFiles('Gemfile.lock') }} + restore-keys: | + ${{ runner.os }}-bundle-4.0.0- + - name: Install dependencies + run: | + bundle config set --local path vendor/bundle + bundle install --jobs 8 --retry 3 + - name: Run RuboCop + run: bundle exec rubocop + + test: + runs-on: ubuntu-latest + strategy: + matrix: + ruby-version: ["3.2.9", "3.3.10", "3.4.8", "4.0.0"] + steps: + - uses: actions/checkout@v4 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby-version }} + - name: Cache Ruby gems + uses: actions/cache@v3 + with: + path: vendor/bundle + key: ${{ runner.os }}-bundle-${{ matrix.ruby-version }}-${{ hashFiles('Gemfile.lock') }} + restore-keys: | + ${{ runner.os }}-bundle-${{ matrix.ruby-version }}- + - name: Install dependencies + run: | + bundle config set --local path vendor/bundle + bundle install --jobs 8 --retry 3 + - name: Run tests + run: bundle exec rake test diff --git a/.ruby-version b/.ruby-version index 47b322c..fcdb2e1 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.4.1 +4.0.0 diff --git a/Gemfile.lock b/Gemfile.lock index 5fab1dc..ff21c8f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -70,6 +70,7 @@ PLATFORMS arm64-darwin-22 arm64-darwin-23 arm64-darwin-24 + arm64-darwin-25 x86_64-linux DEPENDENCIES @@ -86,4 +87,4 @@ DEPENDENCIES wordexp! BUNDLED WITH - 2.6.2 + 4.0.3