Skip to content

Github Actions and CI

Thomas Scherz edited this page Jun 6, 2023 · 5 revisions

Notes for our Github Actions and CI

Github Log and Configuration

https://github.com/uclibs/application_portfolio/actions

Workflows

Choose a workflow

Types of things that Github Actions can do

  • Build
  • Test
  • Deploy your code
  • Make code reviews
  • Branch management
  • Issue triaging work the way you want

Suggested Workflows for this repository

  • Docker image : Build a Docker image to deploy, run, or push to a registry.
  • Ruby on Rails : Build, lint, and test a Rails application
  • Jekyll using Docker image : Package a Jekyll site using the jekyll/builder Docker image.
  • Publish Node.js : Package to GitHub Packages
  • JavaScript Ruby Gem : Pushes a Ruby Gem to RubyGems and GitHub Package Registry.
  • Ruby : Build and test a Ruby project with Rake.
  • Deployment : Deploy a container to an Azure Web App
  • AWS : Deploy to Amazon ECS service powered by AWS Fargate or Amazon EC2.
  • CodeQL Analysis : Security analysis from GitHub for C, C++, C#, Go, Java, JavaScript, TypeScript, Python, Ruby and Kotlin developers.
  • Code scanning : Integrate Fortify's comprehensive static code analysis (SAST) for 27+ languages into your DevSecOps workflows to build secure software faster.
  • Codacy Security Scan : Free, out-of-the-box, security analysis provided by multiple open source static analysis tools.
  • Publish Docker Container : Build, test and push Docker image to GitHub Packages.
  • Greetings : Greets users who are first time contributors to the repo
  • Labeler : Labels pull requests based on the files changed
  • Manual workflow : Simple workflow that is manually triggered.
  • Stale : Checks for stale issues and pull requests
  • Static HTML : Deploy static files in a repository without a build.

Workflows Running on Application Portfolio

  • Add Rubocop Check
  • Add Bundler Audit
  • Update main.yml
  • Configure Github Actions for CI and coveralls upload

Our Github Actions configuration file (Main.yml)

name: CI GitHub Action
on: "push"

#permissions:
#  contents: read

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Set up Ruby
    # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
    # change this to (see https://github.com/ruby/setup-ruby#versioning):
    # uses: ruby/setup-ruby@v1
      uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0
      with:
        bundler-cache: true # runs 'bundle install' and caches installed gems automatically
    - name: Run rubocop
      run: |
        bundle exec rubocop
    - name: Run tests
      run: bundle exec rake
    - name: Coveralls
      uses: coverallsapp/github-action@v2
    - name: Bundler Audit Action
      uses: andrewmcodes/[email protected]
    - name: Brakeman linter
      uses: devmasx/[email protected]
      env:
        GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}