Skip to content

Make working with Instant easier #1312

Make working with Instant easier

Make working with Instant easier #1312

Workflow file for this run

name: Continuous Integration
on:
pull_request:
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref_name }}
cancel-in-progress: true
env:
RUBY_VERSION: 3.1.3
GITHUB_TOKEN: ${{ github.token }}
BUNDLE_LOCKFILE: active
jobs:
rubocop:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'ci skip')"
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ env.RUBY_VERSION }}
bundler-cache: true
- name: RuboCop
run: bin/rubocop
cucumber-lint:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'ci skip')"
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ env.RUBY_VERSION }}
bundler-cache: true
- name: Cucumber Lint
run: bin/cuke_linter -p features/
markdown-lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run markdownlint-cli
uses: nosborn/[email protected]
with:
files: .
config_file: .markdownlint.yaml
yard-coverage:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'ci skip')"
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ env.RUBY_VERSION }}
bundler-cache: true
- name: Yard Coverage
run: |
bin/yardoc -c --no-cache --private --fail-on-warning
bin/yard stats -c --list-undoc
(bin/yard stats -c | grep "100.00% documented")
bin/validate_yard_links
openhab-matrix:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'ci skip')"
outputs:
openhab_matrix: |
["3.4.5", "4.0.4", "4.1.1", "4.2.0", "4.3.0-SNAPSHOT"]
snapshot_date: |
${{ steps.snapshot-date.outputs.SNAPSHOT_DATE }}
steps:
- name: Calculate Date for Cache Key
id: snapshot-date
run: |
echo SNAPSHOT_DATE=$(date -u +-%Y%m%d) >> $GITHUB_OUTPUT
openhab-setup:
needs: openhab-matrix
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'ci skip')"
strategy:
matrix:
openhab_version: ${{ fromJson(needs.openhab-matrix.outputs.openhab_matrix) }}
steps:
- uses: actions/checkout@v4
- name: Cache openHAB setup
id: cache
uses: actions/cache@v4
with:
path: tmp/
key: openHAB-setup-${{ matrix.openhab_version }}${{ endsWith(matrix.openhab_version, 'SNAPSHOT') && needs.openhab-matrix.outputs.snapshot_date || '' }}
- uses: ruby/setup-ruby@v1
if: steps.cache.outputs.cache-hit != 'true'
with:
ruby-version: ${{ env.RUBY_VERSION }}
bundler-cache: true
- uses: actions/setup-java@v4
with:
distribution: zulu
java-version: ${{ startsWith(matrix.openhab_version, '4.') && '17' || '11' }}
java-package: jre
- name: Setup openHAB
if: steps.cache.outputs.cache-hit != 'true'
env:
OPENHAB_VERSION: ${{ matrix.openhab_version }}
run: bin/rake openhab:setup
- name: Upload openHAB Logs
uses: actions/upload-artifact@v4
if: steps.cache.outputs.cache-hit != 'true' && failure()
with:
name: openHAB-setup-logs-${{ matrix.openhab_version }}
path: |
tmp/openhab/userdata/logs
tmp/karaf.log
retention-days: 2
rspec:
needs: [openhab-matrix, openhab-setup]
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'ci skip')"
strategy:
matrix:
openhab_version: ${{ fromJson(needs.openhab-matrix.outputs.openhab_matrix) }}
jruby_version: ["jruby-9.3.10.0", "jruby-9.4.8.0"]
exclude:
- openhab_version: 4.0.4
jruby_version: jruby-9.3.10.0
- openhab_version: 4.1.1
jruby_version: jruby-9.3.10.0
- openhab_version: 4.2.0
jruby_version: jruby-9.3.10.0
- openhab_version: 4.3.0-SNAPSHOT
jruby_version: jruby-9.3.10.0
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.jruby_version }}
bundler-cache: true
- uses: actions/setup-java@v4
with:
distribution: zulu
java-version: ${{ startsWith(matrix.openhab_version, '4.') && '17' || '11' }}
java-package: jre
- name: Restore openHAB setup
uses: actions/cache@v4
with:
path: tmp/
key: openHAB-setup-${{ matrix.openhab_version }}${{ endsWith(matrix.openhab_version, 'SNAPSHOT') && needs.openhab-matrix.outputs.snapshot_date || '' }}
- name: RSpec
run: bin/rspec --format progress --format html --out rspec.html
timeout-minutes: 6
- name: Upload openHAB Logs
uses: actions/upload-artifact@v4
if: failure()
with:
name: RSpec-logs-${{ matrix.openhab_version }}-${{ matrix.jruby_version }}
path: tmp/openhab/userdata/logs
retention-days: 2
- name: Upload RSpec results
uses: actions/upload-artifact@v4
if: success() || failure()
with:
name: RSpec-results-openHAB-${{ matrix.openhab_version }}-jruby-${{ matrix.jruby_version }}
path: rspec.html
cucumber:
needs: [openhab-matrix, openhab-setup]
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'ci skip')"
strategy:
matrix:
openhab_version: ${{ fromJson(needs.openhab-matrix.outputs.openhab_matrix) }}
exclude:
- openhab_version: 3.4.5
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ env.RUBY_VERSION }}
bundler-cache: true
rubygems: 3.4.22
- uses: actions/setup-java@v4
with:
distribution: zulu
java-version: ${{ startsWith(matrix.openhab_version, '4.') && '17' || '11' }}
java-package: jre
- name: Restore openHAB setup
uses: actions/cache@v4
with:
path: tmp/
key: openHAB-setup-${{ matrix.openhab_version }}${{ endsWith(matrix.openhab_version, 'SNAPSHOT') && needs.openhab-matrix.outputs.snapshot_date || '' }}
- name: Cucumber
run: bin/rake features
timeout-minutes: 4
- name: Upload openHAB Logs
uses: actions/upload-artifact@v4
if: success() || failure()
with:
name: Cucumber-logs-openHAB-${{ matrix.openhab_version }}
path: |
tmp/openhab/userdata/logs
tmp/karaf.log
retention-days: 2