added container persistence for dev container; plus readme tweaks #40
This file contains 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: CI | |
on: | |
pull_request: | |
push: | |
branches: [ main ] | |
jobs: | |
prep_devcontainer: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and run Dev Container task | |
uses: devcontainers/[email protected] | |
with: | |
imageName: ghcr.io/astral-devcontainer | |
cacheFrom: ghcr.io/astral-devcontainer | |
push: always | |
runCmd: | | |
# Add multiple commands to run if needed | |
bundle install | |
scan_ruby: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Run brakeman | |
uses: devcontainers/[email protected] | |
with: | |
imageName: ghcr.io/astral-devcontainer | |
cacheFrom: ghcr.io/astral-devcontainer | |
push: never | |
runCmd: bin/brakeman --no-pager | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: .ruby-version | |
bundler-cache: true | |
- name: Lint code for consistent style | |
run: bin/rubocop -f github | |
test: | |
runs-on: ubuntu-latest | |
# services: | |
# redis: | |
# image: redis | |
# ports: | |
# - 6379:6379 | |
# options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Run tests | |
uses: devcontainers/[email protected] | |
with: | |
imageName: ghcr.io/astral-devcontainer | |
cacheFrom: ghcr.io/astral-devcontainer | |
push: never | |
runCmd: bin/rails test | |
- name: Keep screenshots from failed system tests | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: screenshots | |
path: ${{ github.workspace }}/tmp/screenshots | |
if-no-files-found: ignore |