Skip to content

Continuous Integration #200

Continuous Integration

Continuous Integration #200

Workflow file for this run

name: Continuous Integration
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: "50 9 * * *"
workflow_dispatch:
jobs:
run_tests:
name: Run Tests
runs-on: ubuntu-latest
env:
DB_CONN_STR: ${{ vars.DB_CONN_STR }}
DB_USERNAME: ${{ vars.DB_USERNAME }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.4.1
bundler-cache: true
- name: Install dependencies
run: bundle install
- name: Validate Couchbase configuration
run: |
if [ -z "$DB_CONN_STR" ] || [ -z "$DB_USERNAME" ] || [ -z "$DB_PASSWORD" ]; then
echo "Error: Missing required Couchbase configuration"
echo "DB_CONN_STR, DB_USERNAME, and DB_PASSWORD must all be set"
exit 1
fi
echo "Couchbase configuration validated successfully"
- name: Setup Couchbase indexes
run: RAILS_ENV=test bundle exec rake couchbase:setup_indexes
- name: Run integration tests
run: bundle exec rspec spec/requests/api/v1
- name: Verify Swagger documentation generates
run: bundle exec rake rswag:specs:swaggerize
env:
DB_CONN_STR: ${{ vars.DB_CONN_STR }}
DB_USERNAME: ${{ vars.DB_USERNAME }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
CI: true
- name: Report Status
if: always()
uses: ravsamhq/notify-slack-action@v1
with:
status: ${{ job.status }}
notify_when: "failure,warnings"
notification_title: "Repo: *{repo}*"
message_format: "{emoji} *{status_message}* in <{repo_url}|{repo}@{branch}> on <{commit_url}|{commit_sha}>"
footer: "<{run_url}|View Full Run on GitHub>"
env:
SLACK_WEBHOOK_URL: ${{ secrets.ACTION_MONITORING_SLACK }}