aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/ci.yml89
1 files changed, 0 insertions, 89 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
deleted file mode 100644
index 2a00e81..0000000
--- a/.github/workflows/ci.yml
+++ /dev/null
@@ -1,89 +0,0 @@
-name: CI
-
-on:
- push:
- branches: [main]
- pull_request:
- branches: [main]
-
-jobs:
- lint:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
-
- - name: Set up Ruby
- uses: ruby/setup-ruby@v1
- with:
- bundler-cache: true
-
- - name: Run linting
- run: |
- bundle exec rubocop --parallel
-
- - name: Run security checks
- run: |
- bundle exec bundler-audit --update
- bundle exec brakeman -q -w2
-
- test:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
-
- - name: Set up Ruby
- uses: ruby/setup-ruby@v1
- with:
- bundler-cache: true
-
- - name: Setup database
- env:
- RAILS_ENV: "test"
- run: |
- bin/rails db:setup
-
- - name: Check autoloading (zeitwerk)
- env:
- RAILS_ENV: "test"
- run: |
- bin/rails zeitwerk:check
-
- - name: Run tests
- env:
- RAILS_ENV: "test"
- run: |
- bin/rails test
- bin/rails test:system
-
- deploy:
- runs-on: ubuntu-latest
- needs: [lint, test]
- if: github.event_name == 'push'
- steps:
- - uses: actions/checkout@v4
-
- - name: Build production Docker image
- run: |
- docker build --tag ${{ secrets.REGISTRY_HOST }}/${{ secrets.REGISTRY_USERNAME }}/operum:main .
-
- - name: Push Docker image
- run: |
- # The login is done with the default docker password storage, which is
- # not the safest around, but it will be removed by a subsequent logout
- # later on.
- docker login -u "${{ secrets.REGISTRY_USERNAME }}" -p "${{ secrets.REGISTRY_PASSWORD }}" ${{ secrets.REGISTRY_HOST }}
- docker push ${{ secrets.REGISTRY_HOST }}/${{ secrets.REGISTRY_USERNAME }}/operum:main
- docker logout ${{ secrets.REGISTRY_HOST }}
-
- # The server provides a small script named `infra-restart` which will do
- # the right thing to pull the new image of the desired service and re-run
- # it.
- - name: executing remote ssh commands using password
- uses: appleboy/ssh-action@v1.0.3
- with:
- host: ${{ secrets.REMOTE_HOST }}
- username: ${{ secrets.REMOTE_USERNAME }}
- password: ${{ secrets.REMOTE_PASSPHRASE }}
- key: ${{ secrets.PRIVATE_KEY }}
- passphrase: ${{ secrets.REMOTE_PASSPHRASE }}
- script: infra-restart operum