-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Resolve conflicts with main branch, see commit body
On main branch the condition on the deploy step was: github.event_name == 'push' || github.event_name == 'workflow_dispatch' It must be resolved given that we want to avoid triggering on forks (due to possibly missing secrets leading to failing workflow) it then become: (github.event_name == 'push' && github.event.repository.fork == 'false') || github.event_name == 'workflow_dispatch' <==> If it is a classic push: - on fork *do not* trigger deployment - on base repo trigger deployment But if it is manually triggered, execute deployment step anyway maybe we're on fork maybe we're not but this is user triggered so it the user's responsability anyway.
- Loading branch information
Showing
21 changed files
with
887 additions
and
48 deletions.
There are no files selected for viewing
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
name: Pytest | ||
|
||
on: | ||
# Runs on pull requests to check that the website is building without errors | ||
pull_request: | ||
|
||
# Only run if the push to main | ||
push: | ||
branches: | ||
- main | ||
|
||
# Allows you to run this workflow manually from the Actions tab | ||
workflow_dispatch: | ||
|
||
jobs: | ||
# Build job | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
# Checkout repo | ||
- name: 🛒 Checkout | ||
uses: actions/checkout@v3 | ||
|
||
# Install pytest | ||
- name: 🛠️ Install pytest | ||
run: | | ||
python3 -m pip install pytest pytest-mock | ||
# Run tests | ||
- name: 🚀 Run pytest | ||
run: | | ||
cd ./scripts/ | ||
pytest |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
[submodule "src/themes/poison"] | ||
path = src/themes/poison | ||
url = https://github.com/lukeorth/poison.git | ||
url = https://github.com/ctmbl/poison.git |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,45 @@ | ||
import os | ||
import sys | ||
import re | ||
import requests | ||
import yaml | ||
|
||
for file_path in sys.argv[1:]: | ||
# Check that this is an article file | ||
if re.match("^src/content/posts/.+\.md$", file_path): | ||
# Read YAML Header | ||
with open(file_path, "r") as f: | ||
raw_txt = f.read() | ||
data = yaml.safe_load(raw_txt.split("---")[1]) | ||
|
||
# Get rid of python objects, only keep basic types | ||
for key in data: | ||
if type(data[key]) not in [int, str, float, bool]: | ||
data[key] = str(data[key]) | ||
|
||
# Add URL info | ||
file_name = file_path.split("/")[-1][:-3] | ||
data["url"] = f"https://iscsc.fr/posts/{file_name}" | ||
|
||
# Finally send Data | ||
requests.post("http://iscsc.fr:8001/new-blog", json=data) | ||
print(file_path, file_name, data) | ||
ARTICLE_FILE_BASE_PATH = "src/content/posts/" | ||
|
||
def main(files_paths): | ||
for file_path in files_paths: | ||
# Check that this is an article file | ||
if re.match(f"^{ARTICLE_FILE_BASE_PATH}.+\.md$", file_path): | ||
## Read YAML Header | ||
with open(file_path, "r") as f: | ||
raw_txt = f.read() | ||
data = yaml.safe_load(raw_txt.split("---")[1]) | ||
|
||
## Get rid of python objects, only keep basic types | ||
for key in data: | ||
if type(data[key]) not in [int, str, float, bool]: | ||
data[key] = str(data[key]) | ||
|
||
# we have to deal with both possibilities of new article: | ||
# - an article as a .md file which URL is the name | ||
# - a leaf bundle article (https://gohugo.io/content-management/page-bundles/#leaf-bundles): | ||
# it's an article which name is the folder's name and body is in a index.md in this directory | ||
dirname, basename = os.path.split(file_path) | ||
if basename == "index.md": | ||
# leaf bundle: name is directory name | ||
file_name = os.path.basename(dirname) | ||
else: | ||
# direct article file: name is file name | ||
file_name = basename[:-3] # get rid of the `.md` | ||
|
||
## Add URL info: | ||
data["url"] = f"https://iscsc.fr/posts/{file_name}" | ||
|
||
## Finally send Data | ||
req = requests.post("http://iscsc.fr:8001/new-blog", json=data) | ||
print(file_path, file_name, data) | ||
assert(req.status_code == 200) | ||
|
||
|
||
if __name__ == "__main__": | ||
main(sys.argv[1:]) |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
import pytest | ||
|
||
import new_article | ||
|
||
### DISCLAIMER: | ||
# Whereas other extensions are allowed by HUGO: | ||
# "The extension can be .html, .json or any valid MIME type" | ||
# We only accept Markdown articles and so only parse these | ||
### | ||
|
||
|
||
@pytest.fixture | ||
def mock_requests_post(mocker): | ||
mock_post = mocker.MagicMock() | ||
fake_response = mocker.Mock() | ||
|
||
fake_response.status_code = 200 | ||
mock_post.return_value = fake_response | ||
|
||
mocker.patch("requests.post", mock_post) | ||
mocker.patch("new_article.ARTICLE_FILE_BASE_PATH", "test_resources/") | ||
|
||
yield mock_post | ||
|
||
|
||
def test_new_article_file(mock_requests_post): | ||
new_article.main(["test_resources/article_1.md"]) | ||
|
||
mock_requests_post.assert_called_once_with( | ||
'http://iscsc.fr:8001/new-blog', | ||
json={ | ||
'title': 'article title', | ||
'summary': 'article summary', | ||
'date': '2024-02-19 10:52:09+01:00', | ||
'lastUpdate': '2024-02-19 10:52:09+01:00', | ||
'tags': "['some', 'tags']", | ||
'author': 'ctmbl', | ||
'draft': False, | ||
'url': 'https://iscsc.fr/posts/article_1' | ||
} | ||
) | ||
|
||
def test_new_leaf_bundle_article(mock_requests_post): | ||
new_article.main(["test_resources/leaf_bundle/index.md"]) | ||
|
||
mock_requests_post.assert_called_once_with( | ||
'http://iscsc.fr:8001/new-blog', | ||
json={ | ||
'title': 'leaf bundle title', | ||
'summary': 'leaf bundle summary', | ||
'date': '2024-02-19 10:52:09+01:00', | ||
'lastUpdate': '2024-02-19 10:52:09+01:00', | ||
'tags': "['leaf', 'bundle']", | ||
'author': 'ctmbl', | ||
'draft': False, | ||
'url': 'https://iscsc.fr/posts/leaf_bundle' | ||
} | ||
) | ||
|
||
def test_new_branch_bundle(): | ||
# not yet implemented | ||
# https://gohugo.io/content-management/page-bundles/#branch-bundles | ||
pass | ||
|
||
def test_headless_bundle(): | ||
# not yet implemented | ||
# https://gohugo.io/content-management/page-bundles/#headless-bundle | ||
pass |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
--- | ||
title: "article title" | ||
summary: "article summary" | ||
date: 2024-02-19T10:52:09+01:00 | ||
lastUpdate: 2024-02-19T10:52:09+01:00 | ||
tags: ["some","tags"] | ||
author: ctmbl | ||
draft: false | ||
--- |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
--- | ||
title: "leaf bundle title" | ||
summary: "leaf bundle summary" | ||
date: 2024-02-19T10:52:09+01:00 | ||
lastUpdate: 2024-02-19T10:52:09+01:00 | ||
tags: ["leaf","bundle"] | ||
author: ctmbl | ||
draft: false | ||
--- |
This file was deleted.
Oops, something went wrong.
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
Oops, something went wrong.