👷 Add GitHub Actions & Bun script

This commit is contained in:
KaKi87 2025-07-19 14:43:48 +02:00
parent d22632715a
commit 94e2b81576
3 changed files with 62 additions and 0 deletions

20
.github/workflows/bun.yml vendored Normal file
View file

@ -0,0 +1,20 @@
name: Bun Test
on:
schedule:
- cron: '0 0 * * *'
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest
- name: Run script
run: bun main.js

42
main.js Normal file
View file

@ -0,0 +1,42 @@
import { $ } from 'bun';
console.log('Fetching versions');
const items =
await fetch('https://vivaldi.com/source/')
.then(response => response.text())
.then(html => html.matchAll(/<a href="(https:\/\/source\.vivaldi\.com\/vivaldi-source_([0-9.]+)\.tar.xz)".+?modified hidemobile">([^<]+)/g))
.then(matches => [...matches])
.then(matches => matches.map(([
, url
, version
, date
]) => ({
url,
version,
date
})))
.then(items => items.toReversed());
console.log(`Fetched ${items.length} versions`);
for(const {
url,
version,
date
} of items){
console.log(`Processing version ${version}`);
if(await $`git tag -l ${version}`.text()){
console.log(`Version ${version} already exists`);
continue;
}
console.log(`Downloading ${url}`);
await $`curl -L ${url} | tar xJ`;
console.log(`Staging version ${version}`);
await $`git add vivaldi-source`
console.log(`Committing version ${version}`);
await $`git commit -m ${version} --date ${date}`;
console.log(`Tagging version ${version}`);
await $`git tag -a ${version} -m ${version}`;
console.log(`Pushing version ${version}`);
await $`git push`;
console.log(`Version ${version} pushed`)
}
console.log('Done');

0
vivaldi-source/.gitkeep Normal file
View file