diff --git a/.github/workflows/rubyonrails.yml b/.github/workflows/rubyonrails.yml new file mode 100644 index 0000000..7534400 --- /dev/null +++ b/.github/workflows/rubyonrails.yml @@ -0,0 +1,79 @@ + - name: Azure Resource Manager (ARM) Template Deployment + # You may pin to the exact commit or the version. + # uses: whiteducksoftware/azure-arm-action@9bae2e95df87dbd4acae11deb0765be7256fd141 + uses: whiteducksoftware/azure-arm-action@v3.3 + with: + # Paste output of `az ad sp create-for-rbac -o json` as value of secret variable: AZURE_CREDENTIALS + creds: + # Provide the name of a resource group. + resourceGroupName: + # Specify the path to the Azure Resource Manager template. + templateLocation: + # Specifies the name of the resource group deployment to create. + deploymentName: + # Incremental (only add resources to resource group) or Complete (remove extra resources from resource group). + deploymentMode: # optional, default is Incremental + # Specify either path to the Azure Resource Manager parameters file or pass them as 'key1=value1;key2=value2;...'. + parameters: # optional + # Specify either path to the Azure Resource Manager override parameters file or pass them as 'key1=value1;key2=value2;...'. + overrideParameters: # optional + # This workflow uses actions that are not certified by GitHub. They are +# provided by a third-party and are governed by separate terms of service, +# privacy policy, and support documentation. +# +# This workflow will install a prebuilt Ruby version, install dependencies, and +# run tests and linters. +name: "Ruby on Rails CI" +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] +jobs: + test: + runs-on: ubuntu-latest + services: + postgres: + image: postgres:11-alpine + ports: + - "5432:5432" + env: + POSTGRES_DB: rails_test + POSTGRES_USER: rails + POSTGRES_PASSWORD: password + env: + RAILS_ENV: test + DATABASE_URL: "postgres://rails:password@localhost:5432/rails_test" + steps: + - name: Checkout code + uses: actions/checkout@v4 + # Add or replace dependency steps here + - name: Install Ruby and gems + uses: ruby/setup-ruby@78c01b705fd9d5ad960d432d3a0cfa341d50e410 # v1.179.1 + with: + bundler-cache: true + # Add or replace database setup steps here + - name: Set up database schema + run: bin/rails db:schema:load + # Add or replace test runners here + - name: Run tests + run: bin/rake + + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Install Ruby and gems + uses: ruby/setup-ruby@78c01b705fd9d5ad960d432d3a0cfa341d50e410 # v1.179.1 + with: + bundler-cache: true + - name: Generate binstubs + run: bundle binstubs bundler-audit brakeman rubocop + # Add or replace any other lints here + - name: Security audit dependencies + run: bin/bundler-audit --update + - name: Security audit application code + run: bin/brakeman -q -w2 + - name: Lint Ruby files + run: bin/rubocop --parallel