Skip to content

CI:Push To hub if tests pass #5

CI:Push To hub if tests pass

CI:Push To hub if tests pass #5

Workflow file for this run

# 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
env:
RAILS_ENV: test
MAILJET_DEFAULT_MAIL: ${{ secrets.MAILJET_DEFAULT_MAIL }}
MAILJET_DEFAULT_NAME: ${{ secrets.MAILJET_DEFAULT_NAME }}
MAILJET_API_KEY: ${{ secrets.MAILJET_API_KEY }}
MAILJET_SECRET_KEY: ${{ secrets.MAILJET_SECRET_KEY }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Ruby and gems
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Run tests
run: bundle exec rake spec
- name: Upload test results
uses: actions/upload-artifact@v3
if: failure()
with:
name: test-results
path: tmp/test-results
build_and_push_docker:
needs: test
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/rails-mass-mailer:latest
${{ secrets.DOCKERHUB_USERNAME }}/rails-mass-mailer:${{ github.sha }}