Skip to content

Commit

Permalink
feat: ci
Browse files Browse the repository at this point in the history
  • Loading branch information
sixwaaaay committed Jan 23, 2024
1 parent 17a5fc1 commit 7c3c2e6
Show file tree
Hide file tree
Showing 4 changed files with 118 additions and 1 deletion.
39 changes: 39 additions & 0 deletions .github/chore/events.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
* 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.0
*
* 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.
*/

-- test data

CREATE TABLE video_events
(
video_id BIGINT,
event_type INT,
event_time TIMESTAMP
);

DO
$do$
DECLARE
i INT;
BEGIN
FOR i IN 1..100000
LOOP
INSERT INTO video_events (video_id, event_type, event_time)
VALUES ((random() * 5000)::int,
(random() * 3 + 1)::int,
timestamp '2024-01-01 00:00:00' +
((random() * 365)::int || ' days')::interval);
END LOOP;
END
$do$;
23 changes: 23 additions & 0 deletions .github/chore/popular.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/*
* 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.0
*
* 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.
*/

CREATE DATABASE content ;

CREATE TABLE popular_videos
(
order_num BIGINT PRIMARY KEY,
id BIGINT,
score DOUBLE PRECISION
);
55 changes: 55 additions & 0 deletions .github/workflows/cronapp.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,61 @@ on:
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
Expand Down
2 changes: 1 addition & 1 deletion cron/popular/compute.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
WHEN event_type = 3 THEN 0.01
END) AS score
FROM VIDEO_EVENTS
WHERE DATE_TRUNC('day', event_time) = DATE_TRUNC('day', CURRENT_DATE)
WHERE DATE_TRUNC('month', event_time) = DATE_TRUNC('month', CURRENT_DATE)
GROUP BY video_id
ORDER BY score DESC) AS score_table
"""
Expand Down

0 comments on commit 7c3c2e6

Please sign in to comment.