Move versions into managed deps and update openvox components #817
Workflow file for this run
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: main | |
| on: | |
| pull_request: {} | |
| push: | |
| branches: | |
| - main | |
| permissions: | |
| contents: read # minimal required permissions to clone repo | |
| jobs: | |
| # We use "o" as the name to keep it short since the flavor repeats | |
| # it, and the current actions interface doesn't show very many | |
| # characters in the test names. | |
| o: | |
| runs-on: ${{ matrix.os }} | |
| name: ${{ matrix.flavor }} - Ruby ${{ matrix.ruby }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Change the pb_test_gh_job_id definition below after any | |
| # additions/removals of matrix axes. The flavor "/" is | |
| # converted to "_" in the pdb-job-id below. | |
| flavor: | |
| # terminus rspec tests | |
| - rspec/pup-main | |
| # agent, server, db integration tests | |
| - int/openjdk17/pup-main/srv-main/pg-16/rich | |
| - int/openjdk21/pup-main/srv-main/pg-17/rich | |
| - int/openjdk21/pup-main/srv-main/pg-18/rich | |
| os: [ubuntu-24.04] | |
| ruby: ['3.2', '3.3', '3.4'] | |
| # Defaults for special-case influencing vars | |
| lein-profile: [''] | |
| drop-joins: [''] | |
| # Special cases | |
| include: | |
| # lint | |
| - flavor: lint/openjdk17 | |
| os: ubuntu-24.04 | |
| ruby: '3.4' | |
| # unit | |
| # jdk 21 | |
| - flavor: core+ext/openjdk21/pg-18 | |
| os: ubuntu-24.04 | |
| ruby: '3.4' | |
| - flavor: core+ext/openjdk21/pg-17 | |
| os: ubuntu-24.04 | |
| ruby: '3.4' | |
| - flavor: core+ext/openjdk21/pg-16 | |
| os: ubuntu-24.04 | |
| ruby: '3.4' | |
| # jdk 17 | |
| - flavor: core+ext/openjdk17/pg-18 | |
| os: ubuntu-24.04 | |
| ruby: '3.4' | |
| - flavor: core+ext/openjdk17/pg-17 | |
| os: ubuntu-24.04 | |
| ruby: '3.4' | |
| - flavor: core+ext/openjdk17/pg-16 | |
| os: ubuntu-24.04 | |
| ruby: '3.4' | |
| steps: | |
| - name: Compute job outputs | |
| id: computed | |
| run: | | |
| # This id must be unique across all jobs | |
| pdb_test_gh_job_id="${{ matrix.os }}/${{ matrix.flavor }}/${{ matrix.ruby }}" | |
| pdb_test_gh_job_id="${pdb_test_gh_job_id//\//_}" | |
| pdb_test_gh_job_id+="_${{ matrix.lein-profile }}" | |
| pdb_test_gh_job_id+="_${{ matrix.drop-joins }}" | |
| echo "day=$(date +%Y-%m-%d)" >> "$GITHUB_OUTPUT" | |
| echo "pdb-job-id=$pdb_test_gh_job_id" >> "$GITHUB_OUTPUT" | |
| - uses: actions/checkout@v6 | |
| with: | |
| persist-credentials: false | |
| - uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: '${{ matrix.ruby }}' | |
| - name: Output Ruby Environment | |
| run: bundle env | |
| - uses: actions/cache@v5 | |
| with: | |
| key: | | |
| ${{ matrix.flavor }} | |
| ${{ runner.os }} | |
| ${{ hashFiles('**/Gemfile') }} | |
| ${{ hashFiles('**/project.clj') }} | |
| ${{ steps.computed.outputs.day }} | |
| %{{ matrix.ruby }} | |
| path: | | |
| ci/local/jdk | |
| vendor/bundle/ruby | |
| ~/.m2/repository | |
| ~/Library/Caches/Homebrew | |
| - name: Gather inital host info | |
| run: ext/bin/host-info | |
| - env: | |
| LEIN_PROFILES: ${{ matrix.lein-profile }} | |
| PDB_QUERY_OPTIMIZE_DROP_UNUSED_JOINS: ${{ matrix.drop-joins }} | |
| NO_ACCEPTANCE: true | |
| run: ci/bin/prep-and-run-in github ${{ matrix.flavor }} | |
| - uses: actions/upload-artifact@v6 | |
| with: | |
| name: "${{ steps.computed.outputs.pdb-job-id }}" | |
| path: | | |
| pg.log | |
| test.log | |
| run-dita: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Initialize | |
| uses: actions/checkout@v6 | |
| - name: Docs test | |
| uses: dita-ot/dita-ot-action@4.2.4 | |
| with: | |
| build: dita -i documentation/puppetdb.ditamap -o out -f html5 --processing-mode=strict | |
| build: | |
| name: build openvoxdb | |
| runs-on: ubuntu-24.04 | |
| permissions: | |
| pull-requests: write | |
| steps: | |
| - name: checkout repo | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 # So we fetch all history and tags and can build non-tagged versions | |
| - name: setup java | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: 17 | |
| - name: setup ruby | |
| uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: '3.2' | |
| bundler-cache: true | |
| - name: build it | |
| run: bundle exec rake vox:build | |
| - name: get version | |
| id: version | |
| run: | | |
| DESCRIBE=$(git describe --abbrev=9) | |
| echo "describe=${DESCRIBE//-/.}" >> $GITHUB_OUTPUT | |
| - name: Upload build artifacts | |
| id: upload | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: openvoxdb-${{ steps.version.outputs.describe }} | |
| path: output/ | |
| retention-days: 1 # quite low retention, because the artifacts are quite large | |
| overwrite: true # overwrite old artifacts if a PR runs again (artifacts are per PR * per project) | |
| - name: Add comment | |
| uses: peter-evans/create-or-update-comment@v5 | |
| # Check if the event is not triggered by a fork | |
| # https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#restrictions-on-repository-forks | |
| if: github.event.pull_request.head.repo.full_name == github.repository | |
| with: | |
| issue-number: ${{ github.event.pull_request.number }} | |
| body: |- | |
| The rpm/deb packages and the JAR file for openvoxdb are available in a zip archive: | |
| ${{ steps.upload.outputs.artifact-url }} | |
| termini-rspec: | |
| name: openvoxdb-termini RSpec | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: checkout repo | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| - name: setup ruby | |
| uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: '3.2' | |
| bundler-cache: true | |
| - name: Run RSpec | |
| run: bundle exec rspec spec -fd | |
| working-directory: puppet | |
| tests: | |
| needs: | |
| - o | |
| - run-dita | |
| - build | |
| - termini-rspec | |
| runs-on: ubuntu-24.04 | |
| name: Test suite | |
| steps: | |
| - run: echo Test suite completed |