Skip to content

feat: cron compute job #9

feat: cron compute job

feat: cron compute job #9

Workflow file for this run

#
# Copyright (c) 2024 sixwaaaay.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
name: cronapp
on:
push:
branches:
- main
paths:
- 'cron/**'
pull_request:
paths:
- 'cron/**'
jobs:
test:
name: tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: init database
working-directory: ./.github/chore
run: |
sudo systemctl start mysql.service
sudo systemctl start postgresql.service
mysql -u root -proot < popular.sql
psql -U postgres -f events.sql
- name: init config
working-directory: ./corn/popular
run: |
jq '.postgres.database |= "postgres" ' conf.json > tmp.json && mv tmp.json conf.json
jq '.postgres.user |= "postgres" ' conf.json > tmp.json && mv tmp.json conf.json
jq '.postgres.password |= "" ' conf.json > tmp.json && mv tmp.json conf.json
jq '.postgres.host |= "localhost" ' conf.json > tmp.json && mv tmp.json conf.json
jq '.postgres.port |= "5432" ' conf.json > tmp.json && mv tmp.json conf.json
jq '.mysql.user |= "root" ' conf.json > tmp.json && mv tmp.json conf.json
jq '.mysql.password |= "root" ' conf.json > tmp.json && mv tmp.json conf.json
jq '.mysql.host |= "localhost" ' conf.json > tmp.json && mv tmp.json conf.json
jq '.mysql.database |= "content" ' conf.json > tmp.json && mv tmp.json conf.json
jq '.mysql.port |= "3306" ' conf.json > tmp.json && mv tmp.json conf.json
- name: setup python
uses: actions/setup-python@v2
with:
python-version: 3.11
- name: setup jaeger
run: |
wget https://github.com/jaegertracing/jaeger/releases/download/v1.53.0/jaeger-1.53.0-linux-amd64.tar.gz
tar -xzf jaeger-1.53.0-linux-amd64.tar.gz
./jaeger-1.53.0-linux-amd64/jaeger-all-in-one &
- name: install coverage.py
run: pip install coverage.py
- name: run coverage
working-directory: ./corn/popular
run: |
pip install -r requirements.txt
coverage run compute.py
- name: upload coverage report
uses: actions/upload-artifact@v2
with:
name: coverage
path: ./corn/popular/.coverage
flags: popular-compute
image-release:
name: Release Image
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: ./cron/popular
file: ./cron/popular/Dockerfile
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME || 'app'}}/popular-compute:latest