Skip to content

Commit f406a0a

Browse files
committed
vercel integration
1 parent afa19d9 commit f406a0a

File tree

6 files changed

+69
-3
lines changed

6 files changed

+69
-3
lines changed

.github/workflows/deploy-website.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ on:
1111
jobs:
1212
deploy:
1313
runs-on: ubuntu-latest
14+
permissions:
15+
contents: read
16+
deployments: write
17+
statuses: write
18+
pull-requests: write
1419
steps:
1520
- name: Checkout main branch
1621
uses: actions/checkout@v4
@@ -26,3 +31,40 @@ jobs:
2631
user_name: 'github-actions[bot]'
2732
user_email: 'github-actions[bot]@users.noreply.github.com'
2833
commit_message: ${{ github.event.head_commit.message }}
34+
35+
- name: Set up Python 3.12
36+
uses: actions/setup-python@v3
37+
with:
38+
python-version: "3.12"
39+
40+
- name: Install dependencies
41+
run: |
42+
python -m pip install --upgrade pip
43+
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
44+
pip install cryptography
45+
46+
- name: Get vercel auth
47+
env:
48+
FERNET_KEY: ${{ secrets.FERNET_KEY }}
49+
run: |
50+
cd tests
51+
python -m util vercel | {
52+
read vercel_token
53+
read org_id
54+
read project_id
55+
} >/dev/null 2>/dev/null
56+
cd ..
57+
58+
- name: Checkout website branch
59+
uses: actions/checkout@v4
60+
with:
61+
ref: 'website'
62+
63+
- uses: nexterias/actions-vercel@v1
64+
id: vercel
65+
with:
66+
token: $vercel_token
67+
org-id: $org_id
68+
project-id: $project_id
69+
production: true
70+
prebuilt: true

tests/util/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,4 @@ def teacher_session() -> Optional[_Session]:
4242
_teacher_session = login(data["username"], data["password"])
4343

4444
return _teacher_session
45+

tests/util/__main__.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66

77
try:
88
from .keyhandler import FERNET
9-
except ImportError:
9+
from .vercelauth import vercel_auth
10+
except ImportError as excp:
1011
from keyhandler import FERNET
12+
from vercelauth import vercel_auth
1113

1214

1315
def gen_keystr():
@@ -28,6 +30,8 @@ class Args(argparse.Namespace):
2830
decrypt.add_argument("content", nargs="?")
2931
if keygen := command.add_parser("keygen", help="Generate a key. You could set this to $FERNET_KEY if you want"):
3032
...
33+
if vercelauth := command.add_parser("vercel", help="Output the vercel auth data."):
34+
...
3135

3236
args = parser.parse_args(namespace=Args())
3337

@@ -44,6 +48,11 @@ class Args(argparse.Namespace):
4448

4549
case "keygen":
4650
print(gen_keystr())
51+
52+
case "vercel":
53+
print(
54+
"\n".join(vercel_auth())
55+
)
4756

4857

4958
if __name__ == "__main__":

tests/util/auth.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,8 @@ scratchattachv2 = "gAAAAABozo75u7Eov4zakrObMqLVs6wmwSNXQ7KroU5ntU7vZvM49fW-RnEWl
1212
[teacher_auth]
1313
username = "gAAAAABo2AwGrm5MsCqFTz7yPBZf8F--b3529aCsi9olynL0DKBi5EllZR1jNtsTt4vUPdke7eyEHBToMfN00QgxAU4RmlH3GCAK4TpXs7Qd7eI4iGD1hIU="
1414
password = "gAAAAABo2AwLc-oRH45T6V-xlcpbaqH4Ds93nMCrMbgUv_AHoQhTO1L7NkU54npm54-Zjs7YVlkOSFS5kffWzJeMZB7maNAv1WKnHJ4YvzF_R7PlIaeIBa8="
15+
16+
[vercel_auth]
17+
vercel_token = "gAAAAABpB06MNHj6aq9DvD4NVe5KhC5wKn4yopSimtUKVDz1VvuE430xn2eytrLV0JtN05coZEg_ZjZ4Hekw3S2CjbN9pFLN61vsy87BsnPi-IemLTobQoY="
18+
org_id = "gAAAAABpB069BVBM7X0-TTS-VXv4rDcdGVb7Z3n2EWM73SHFv7gHQpBMtxoe2SLZf6OD1K5B1TGgC-52NwPOwKgA78Jt3WfQuGpL88El2MnUmdaoqvrn2OI="
19+
project_id = "gAAAAABpB04hpAEZdZT6LLvWEzibe-Vi3tORO_STdGUOSq4HwVids23UhKoHJSi9d9z-_5ULq7DO5h37kJ7GbcpjfDS85b7IGgHmQu-Z1FT_rLYsHnhAMGKLIKEuXXVV-nLLY7WlDa_0"

tests/util/keyhandler.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ def str_2_key(gen: str) -> bytes:
2121
return urlsafe_b64encode(gen.encode())
2222

2323

24-
_fernet_key_raw = os.environ["FERNET_KEY"]
25-
FERNET_KEY = str_2_key(_fernet_key_raw)
24+
_fernet_key_raw = os.getenv("FERNET_KEY")
25+
FERNET_KEY = str_2_key(_fernet_key_raw) if _fernet_key_raw is not None else Fernet.generate_key()
2626
FERNET = Fernet(FERNET_KEY)
2727

2828
T = TypeVar("T")

tests/util/vercelauth.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from .keyhandler import get_auth
2+
3+
def vercel_auth() -> list[str]:
4+
data = get_auth()["vercel_auth"]
5+
return [
6+
data["vercel_token"],
7+
data["org_id"],
8+
data["project_id"]
9+
]

0 commit comments

Comments
 (0)