mirror of
https://github.com/KaKi87/vivaldi-source.git
synced 2025-07-20 01:05:36 +00:00
👷 Add GitHub Actions & Bun script
This commit is contained in:
parent
d22632715a
commit
94e2b81576
3 changed files with 62 additions and 0 deletions
20
.github/workflows/bun.yml
vendored
Normal file
20
.github/workflows/bun.yml
vendored
Normal 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
42
main.js
Normal 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
0
vivaldi-source/.gitkeep
Normal file
Loading…
Add table
Add a link
Reference in a new issue