mirror of
https://github.com/ivabus/pantry
synced 2024-11-23 00:45:07 +03:00
this works better than a poor-quality shell pipeline
This commit is contained in:
parent
b8ca94a587
commit
680b5bf9e9
2 changed files with 46 additions and 6 deletions
10
.github/workflows/cd.yml
vendored
10
.github/workflows/cd.yml
vendored
|
@ -11,13 +11,11 @@ jobs:
|
|||
HAS_ARTIFACTS: ${{ env.HAS_ARTIFACTS }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- run: >
|
||||
grep -E ' github: [^\w]+/[^\w/]+' projects/**/package.yml |
|
||||
sed -e 's|^projects/\(.*\)/package.yml: *github: \([^/]*/[^/]*\).*|{ "project": "\1", "github": "\2" }|' |
|
||||
jq -sc . |
|
||||
curl https://app.tea.xyz/api/receiveWatcherProjects --fail -X PUT \
|
||||
-H "content-type: application/json" -H "authorization: bearer ${{ secrets.TEA_API_TOKEN }}" -d @-
|
||||
- uses: teaxyz/setup@v0
|
||||
- run: ./scripts/map-projects-to-githubs.ts
|
||||
env:
|
||||
WATCHER_URL: ${{ secrets.WATCHER_URL }}
|
||||
TEA_API_TOKEN: ${{ secrets.TEA_API_TOKEN }}
|
||||
- run: ./scripts/has-artifacts.ts ${{ github.repository }} ${{ github.sha }} >>$GITHUB_ENV
|
||||
env:
|
||||
GITHUB_TOKEN: ${{github.token}}
|
||||
|
|
42
scripts/map-projects-to-githubs.ts
Executable file
42
scripts/map-projects-to-githubs.ts
Executable file
|
@ -0,0 +1,42 @@
|
|||
#!/usr/bin/env -S tea -E
|
||||
|
||||
/*---
|
||||
args:
|
||||
- deno
|
||||
- run
|
||||
- --allow-read
|
||||
- --allow-env
|
||||
- --allow-net
|
||||
- --import-map={{ srcroot }}/import-map.json
|
||||
---*/
|
||||
|
||||
import { usePantry } from "hooks"
|
||||
import { panic } from "utils"
|
||||
import * as semver from "semver"
|
||||
|
||||
const url = Deno.env.get("WATCHER_URL") ?? panic("missing $WATCHER_URL")
|
||||
const token = Deno.env.get("TEA_API_TOKEN") ?? panic("missing $TEA_API_TOKEN")
|
||||
|
||||
const pantry = usePantry()
|
||||
|
||||
const rv: Set<{project: string, github: string}> = new Set()
|
||||
|
||||
for await (const {project} of pantry.ls()) {
|
||||
const yml = await pantry.getYAML({project, constraint: new semver.Range('*') }).parse()
|
||||
if (yml?.versions?.github) {
|
||||
const github = yml.versions.github.split('/').slice(0, 2).join('/')
|
||||
rv.add({ project, github })
|
||||
}
|
||||
}
|
||||
|
||||
const options = {
|
||||
method: 'PUT',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': `bearer ${token}`,
|
||||
},
|
||||
body: JSON.stringify([...rv]),
|
||||
}
|
||||
|
||||
console.log(rv)
|
||||
await fetch(url, options)
|
Loading…
Reference in a new issue