Add action to manually publish docs #198
This file contains hidden or 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: Continuous Integration | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref_name }} | |
| cancel-in-progress: true | |
| env: | |
| RUBY_VERSION: 3.1.4 | |
| GITHUB_TOKEN: ${{ github.token }} | |
| jobs: | |
| rubocop: | |
| runs-on: ubuntu-22.04 | |
| 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-22.04 | |
| 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-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Run markdownlint-cli | |
| uses: nosborn/github-action-markdown-cli@v2.0.0 | |
| with: | |
| files: . | |
| config_file: .markdownlint.yaml | |
| yard-coverage: | |
| runs-on: ubuntu-22.04 | |
| 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-snapshot-date: | |
| runs-on: ubuntu-22.04 | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| outputs: | |
| openhab_matrix: | | |
| ["4.0.4", "4.1.3", "4.2.3", "4.3.6", "5.0.0", "5.1.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-snapshot-date | |
| runs-on: ubuntu-22.04 | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| strategy: | |
| matrix: | |
| include: | |
| - java_version: 17 | |
| openhab_version: 4.1.3 | |
| - java_version: 17 | |
| openhab_version: 4.2.3 | |
| - java_version: 17 | |
| openhab_version: 4.3.6 | |
| - java_version: 21 | |
| openhab_version: 4.3.6 | |
| - java_version: 21 | |
| openhab_version: 5.0.0 | |
| - java_version: 21 | |
| openhab_version: 5.1.0-SNAPSHOT | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Cache openHAB setup | |
| id: cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: tmp/ | |
| key: openHAB-setup-2-${{ matrix.openhab_version }}${{ endsWith(matrix.openhab_version, 'SNAPSHOT') && needs.openhab-snapshot-date.outputs.snapshot_date || '' }}-java-${{ matrix.java_version }} | |
| - 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 | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| with: | |
| distribution: zulu | |
| java-version: ${{ matrix.java_version }} | |
| 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 }}-java-${{ matrix.java_version }} | |
| path: | | |
| tmp/openhab/userdata/logs | |
| tmp/karaf.log | |
| retention-days: 2 | |
| rspec: | |
| needs: [openhab-snapshot-date, openhab-setup] | |
| runs-on: ubuntu-22.04 | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| strategy: | |
| matrix: | |
| include: | |
| - java_version: 17 | |
| jruby_version: jruby-9.4.5.0 | |
| openhab_version: 4.1.3 | |
| - java_version: 17 | |
| jruby_version: jruby-9.4.6.0 | |
| openhab_version: 4.2.3 | |
| - java_version: 17 | |
| jruby_version: jruby-9.4.9.0 | |
| openhab_version: 4.3.6 | |
| - java_version: 21 | |
| jruby_version: jruby-9.4.9.0 | |
| openhab_version: 4.3.6 | |
| - java_version: 21 | |
| jruby_version: jruby-10.0.0.1 | |
| openhab_version: 5.0.0 | |
| - java_version: 21 | |
| jruby_version: jruby-10.0.2.0 | |
| openhab_version: 5.1.0-SNAPSHOT | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-java@v4 | |
| with: | |
| distribution: zulu | |
| java-version: ${{ matrix.java_version }} | |
| java-package: jre | |
| - uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: ${{ matrix.jruby_version }} | |
| bundler-cache: true | |
| - name: Restore openHAB setup | |
| uses: actions/cache@v4 | |
| with: | |
| path: tmp/ | |
| key: openHAB-setup-2-${{ matrix.openhab_version }}${{ endsWith(matrix.openhab_version, 'SNAPSHOT') && needs.openhab-snapshot-date.outputs.snapshot_date || '' }}-java-${{ matrix.java_version }} | |
| fail-on-cache-miss: true | |
| - 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 }}-java-${{ matrix.java_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 }}-java-${{ matrix.java_version }} | |
| path: rspec.html | |
| cucumber: | |
| needs: [openhab-snapshot-date, openhab-setup] | |
| runs-on: ubuntu-22.04 | |
| if: "!contains(github.event.head_commit.message, 'ci skip')" | |
| strategy: | |
| matrix: | |
| include: | |
| - java_version: 17 | |
| openhab_version: 4.1.3 | |
| - java_version: 17 | |
| openhab_version: 4.2.3 | |
| - java_version: 17 | |
| openhab_version: 4.3.6 | |
| - java_version: 21 | |
| openhab_version: 4.3.6 | |
| - java_version: 21 | |
| openhab_version: 5.0.0 | |
| - java_version: 21 | |
| openhab_version: 5.1.0-SNAPSHOT | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-java@v4 | |
| with: | |
| distribution: zulu | |
| java-version: ${{ matrix.java_version }} | |
| java-package: jre | |
| - uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: ${{ env.RUBY_VERSION }} | |
| bundler-cache: true | |
| - name: Restore openHAB setup | |
| uses: actions/cache@v4 | |
| with: | |
| path: tmp/ | |
| key: openHAB-setup-2-${{ matrix.openhab_version }}${{ endsWith(matrix.openhab_version, 'SNAPSHOT') && needs.openhab-snapshot-date.outputs.snapshot_date || '' }}-java-${{ matrix.java_version }} | |
| fail-on-cache-miss: true | |
| - 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 }}-java-${{ matrix.java_version }} | |
| path: | | |
| tmp/openhab/userdata/logs | |
| tmp/karaf.log | |
| retention-days: 2 |