From f63e8a8d645860be3d1b5249c97d2bf14186f159 Mon Sep 17 00:00:00 2001 From: yayyz Date: Fri, 16 Jan 2026 01:34:27 +0900 Subject: [PATCH 1/4] testing actions --- day4-actions-lab/.github/workflows/ci.yml | 27 +++++++++++ .../.github/workflows/release.yml | 31 +++++++++++++ day4-actions-lab/app/__init__.py | 1 + day4-actions-lab/app/message.py | 5 ++ day4-actions-lab/data/name.txt | 1 + day4-actions-lab/dist/index.html | 20 ++++++++ day4-actions-lab/requirements.txt | 1 + day4-actions-lab/tests/test_message.py | 20 ++++++++ day4-actions-lab/tools/generate_site.py | 46 +++++++++++++++++++ 9 files changed, 152 insertions(+) create mode 100644 day4-actions-lab/.github/workflows/ci.yml create mode 100644 day4-actions-lab/.github/workflows/release.yml create mode 100644 day4-actions-lab/app/__init__.py create mode 100644 day4-actions-lab/app/message.py create mode 100644 day4-actions-lab/data/name.txt create mode 100644 day4-actions-lab/dist/index.html create mode 100644 day4-actions-lab/requirements.txt create mode 100644 day4-actions-lab/tests/test_message.py create mode 100644 day4-actions-lab/tools/generate_site.py diff --git a/day4-actions-lab/.github/workflows/ci.yml b/day4-actions-lab/.github/workflows/ci.yml new file mode 100644 index 0000000..2403019 --- /dev/null +++ b/day4-actions-lab/.github/workflows/ci.yml @@ -0,0 +1,27 @@ +name: CI + +on: + pull_request: + branches: ["main"] + push: + branches: ["main"] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Run tests + run: pytest -q diff --git a/day4-actions-lab/.github/workflows/release.yml b/day4-actions-lab/.github/workflows/release.yml new file mode 100644 index 0000000..cac292f --- /dev/null +++ b/day4-actions-lab/.github/workflows/release.yml @@ -0,0 +1,31 @@ +name: Release Artifact + +on: + push: + branches: ["main"] + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Generate site artifact + run: python tools/generate_site.py + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: site-dist + path: dist/index.html diff --git a/day4-actions-lab/app/__init__.py b/day4-actions-lab/app/__init__.py new file mode 100644 index 0000000..36b8e57 --- /dev/null +++ b/day4-actions-lab/app/__init__.py @@ -0,0 +1 @@ +"""App package.""" diff --git a/day4-actions-lab/app/message.py b/day4-actions-lab/app/message.py new file mode 100644 index 0000000..508018b --- /dev/null +++ b/day4-actions-lab/app/message.py @@ -0,0 +1,5 @@ +def render_message(name: str) -> str: + name = (name or "").strip() + if not name: + name = "anonymous" + return f"Hello, {name}!" diff --git a/day4-actions-lab/data/name.txt b/day4-actions-lab/data/name.txt new file mode 100644 index 0000000..2873b8a --- /dev/null +++ b/day4-actions-lab/data/name.txt @@ -0,0 +1 @@ +Yeji diff --git a/day4-actions-lab/dist/index.html b/day4-actions-lab/dist/index.html new file mode 100644 index 0000000..45ae3ff --- /dev/null +++ b/day4-actions-lab/dist/index.html @@ -0,0 +1,20 @@ + + + + + + Day4 Artifact Demo + + + +
+

CI + Artifact CD Demo

+

Name: Yeji

+

Message: Hello, Yeji!

+

Generated at (UTC): 2026-01-15 16:32:49 UTC

+
+ + diff --git a/day4-actions-lab/requirements.txt b/day4-actions-lab/requirements.txt new file mode 100644 index 0000000..fe93bd5 --- /dev/null +++ b/day4-actions-lab/requirements.txt @@ -0,0 +1 @@ +pytest==8.3.2 diff --git a/day4-actions-lab/tests/test_message.py b/day4-actions-lab/tests/test_message.py new file mode 100644 index 0000000..d851c71 --- /dev/null +++ b/day4-actions-lab/tests/test_message.py @@ -0,0 +1,20 @@ +from pathlib import Path +import sys + +ROOT = Path(__file__).resolve().parents[1] +if str(ROOT) not in sys.path: + sys.path.insert(0, str(ROOT)) + +from app.message import render_message + + +def test_render_message_normal(): + assert render_message("Yeji") == "Hello, Yeji!" + + +def test_render_message_trims(): + assert render_message(" Yeji ") == "Hello, Yeji!" + + +def test_render_message_empty(): + assert render_message("") == "Hello, anonymous!" diff --git a/day4-actions-lab/tools/generate_site.py b/day4-actions-lab/tools/generate_site.py new file mode 100644 index 0000000..9c1bdbc --- /dev/null +++ b/day4-actions-lab/tools/generate_site.py @@ -0,0 +1,46 @@ +from datetime import datetime, timezone +from pathlib import Path +import sys + +ROOT = Path(__file__).resolve().parents[1] +if str(ROOT) not in sys.path: + sys.path.insert(0, str(ROOT)) + +from app.message import render_message +DATA = ROOT / "data" / "name.txt" +OUT = ROOT / "dist" / "index.html" + + +def main(): + name = DATA.read_text(encoding="utf-8").strip() + rendered = render_message(name) + now = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S UTC") + + html = f""" + + + + + Day4 Artifact Demo + + + +
+

CI + Artifact CD Demo

+

Name: {name}

+

Message: {rendered}

+

Generated at (UTC): {now}

+
+ + +""" + OUT.parent.mkdir(parents=True, exist_ok=True) + OUT.write_text(html, encoding="utf-8") + print(f"Wrote {OUT}") + + +if __name__ == "__main__": + main() From 9555172bb189dae6012fd1f3ec2c6e135fc7b483 Mon Sep 17 00:00:00 2001 From: yayyz Date: Fri, 16 Jan 2026 01:38:17 +0900 Subject: [PATCH 2/4] moved components to root directory --- {day4-actions-lab/.github => .github}/workflows/ci.yml | 0 .../.github => .github}/workflows/release.yml | 0 {day4-actions-lab/app => app}/__init__.py | 0 {day4-actions-lab/app => app}/message.py | 0 {day4-actions-lab/data => data}/name.txt | 0 {day4-actions-lab/dist => dist}/index.html | 0 day4-actions-lab/requirements.txt => requirements.txt | 0 submissions/kyeowo1221.md | 8 -------- {day4-actions-lab/tests => tests}/test_message.py | 0 {day4-actions-lab/tools => tools}/generate_site.py | 0 10 files changed, 8 deletions(-) rename {day4-actions-lab/.github => .github}/workflows/ci.yml (100%) rename {day4-actions-lab/.github => .github}/workflows/release.yml (100%) rename {day4-actions-lab/app => app}/__init__.py (100%) rename {day4-actions-lab/app => app}/message.py (100%) rename {day4-actions-lab/data => data}/name.txt (100%) rename {day4-actions-lab/dist => dist}/index.html (100%) rename day4-actions-lab/requirements.txt => requirements.txt (100%) delete mode 100644 submissions/kyeowo1221.md rename {day4-actions-lab/tests => tests}/test_message.py (100%) rename {day4-actions-lab/tools => tools}/generate_site.py (100%) diff --git a/day4-actions-lab/.github/workflows/ci.yml b/.github/workflows/ci.yml similarity index 100% rename from day4-actions-lab/.github/workflows/ci.yml rename to .github/workflows/ci.yml diff --git a/day4-actions-lab/.github/workflows/release.yml b/.github/workflows/release.yml similarity index 100% rename from day4-actions-lab/.github/workflows/release.yml rename to .github/workflows/release.yml diff --git a/day4-actions-lab/app/__init__.py b/app/__init__.py similarity index 100% rename from day4-actions-lab/app/__init__.py rename to app/__init__.py diff --git a/day4-actions-lab/app/message.py b/app/message.py similarity index 100% rename from day4-actions-lab/app/message.py rename to app/message.py diff --git a/day4-actions-lab/data/name.txt b/data/name.txt similarity index 100% rename from day4-actions-lab/data/name.txt rename to data/name.txt diff --git a/day4-actions-lab/dist/index.html b/dist/index.html similarity index 100% rename from day4-actions-lab/dist/index.html rename to dist/index.html diff --git a/day4-actions-lab/requirements.txt b/requirements.txt similarity index 100% rename from day4-actions-lab/requirements.txt rename to requirements.txt diff --git a/submissions/kyeowo1221.md b/submissions/kyeowo1221.md deleted file mode 100644 index eb34b3a..0000000 --- a/submissions/kyeowo1221.md +++ /dev/null @@ -1,8 +0,0 @@ -'EOF' - -github: kyeowo1221 - -takeaway: 강의 잘 이해하기 - -EOF - diff --git a/day4-actions-lab/tests/test_message.py b/tests/test_message.py similarity index 100% rename from day4-actions-lab/tests/test_message.py rename to tests/test_message.py diff --git a/day4-actions-lab/tools/generate_site.py b/tools/generate_site.py similarity index 100% rename from day4-actions-lab/tools/generate_site.py rename to tools/generate_site.py From b582103dc801955a3441ddfb008dfa4bb1f7fd89 Mon Sep 17 00:00:00 2001 From: yayyz Date: Fri, 16 Jan 2026 01:40:56 +0900 Subject: [PATCH 3/4] fixed test --- tests/test_message.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_message.py b/tests/test_message.py index d851c71..9900993 100644 --- a/tests/test_message.py +++ b/tests/test_message.py @@ -12,8 +12,8 @@ def test_render_message_normal(): assert render_message("Yeji") == "Hello, Yeji!" -def test_render_message_trims(): - assert render_message(" Yeji ") == "Hello, Yeji!" +# def test_render_message_trims(): +# assert render_message(" Yeji ") == "Hello, Yeji!" def test_render_message_empty(): From e4b360054df889c41fda0f41802780feba7a192c Mon Sep 17 00:00:00 2001 From: yayyz Date: Fri, 16 Jan 2026 01:48:58 +0900 Subject: [PATCH 4/4] fixed: --- tests/test_message.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_message.py b/tests/test_message.py index 9900993..d851c71 100644 --- a/tests/test_message.py +++ b/tests/test_message.py @@ -12,8 +12,8 @@ def test_render_message_normal(): assert render_message("Yeji") == "Hello, Yeji!" -# def test_render_message_trims(): -# assert render_message(" Yeji ") == "Hello, Yeji!" +def test_render_message_trims(): + assert render_message(" Yeji ") == "Hello, Yeji!" def test_render_message_empty():