diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 000000000..14f4ba63f --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,15 @@ +name: Prod Deploy + +on: + # Run this action every Tuesday at 02:00 UTC (Singapore 10AM) + schedule: + - cron: "0 2 * * 2" + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - run: gh pr create -B main -H develop --title 'Prod deploy' --fill + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release-beta.yml b/.github/workflows/release-beta.yml index c183f463d..32a2089d2 100644 --- a/.github/workflows/release-beta.yml +++ b/.github/workflows/release-beta.yml @@ -48,8 +48,6 @@ jobs: args: release --clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - BREWTAP_TOKEN: ${{ secrets.GH_PAT }} - SCOOP_TOKEN: ${{ secrets.GH_PAT }} SENTRY_DSN: ${{ secrets.SENTRY_DSN }} - run: gh release edit v${{ needs.release.outputs.new-release-version }} --draft=false --prerelease diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0702cb986..4b165ef60 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,13 +1,29 @@ name: Release on: - release: - types: - - released + push: + branches: + - main jobs: + settings: + runs-on: ubuntu-latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + outputs: + release_tag: ${{ steps.prerelease.outputs.tagName }} + steps: + - uses: actions/checkout@v4 + - id: prerelease + run: | + gh release list --limit 1 --json tagName --jq \ + '.[]|to_entries|map("\(.key)=\(.value|tostring)")|.[]' >> $GITHUB_OUTPUT + - run: gh release edit ${{ steps.prerelease.outputs.tagName }} --latest + commit: name: Publish Brew and Scoop + needs: + - settings runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -15,12 +31,14 @@ jobs: with: go-version-file: go.mod cache: true - - run: go run tools/publish/main.go "${GITHUB_REF_NAME#v}" + - run: go run tools/publish/main.go ${{ needs.settings.outputs.release_tag }} env: GITHUB_TOKEN: ${{ secrets.GH_PAT }} publish: name: Publish NPM + needs: + - settings runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -28,12 +46,13 @@ jobs: with: node-version: "16.x" registry-url: "https://registry.npmjs.org" - - run: npm dist-tag add "supabase@${GITHUB_REF_NAME#v}" latest + - run: npm dist-tag add "supabase@${RELEASE_TAG#v}" latest env: + RELEASE_TAG: ${{ needs.settings.outputs.release_tag }} NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} compose: - name: Publish self-hosted + name: Bump self-hosted versions runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -41,12 +60,15 @@ jobs: with: go-version-file: go.mod cache: true - - run: go run tools/selfhost/main.go "cli/$GITHUB_REF_NAME" + - run: go run tools/selfhost/main.go env: GITHUB_TOKEN: ${{ secrets.GH_PAT }} changelog: name: Publish changelog + needs: + - commit + - publish runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -61,6 +83,8 @@ jobs: docs: name: Publish reference docs + needs: + - settings runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -68,6 +92,6 @@ jobs: with: go-version-file: go.mod cache: true - - run: go run docs/main.go "${GITHUB_REF_NAME#v}" | go run tools/bumpdoc/main.go apps/docs/spec/cli_v1_commands.yaml + - run: go run docs/main.go ${{ needs.settings.outputs.release_tag }} | go run tools/bumpdoc/main.go apps/docs/spec/cli_v1_commands.yaml env: GITHUB_TOKEN: ${{ secrets.GH_PAT }} diff --git a/docs/main.go b/docs/main.go index 63d16fd0b..9dc1b9553 100644 --- a/docs/main.go +++ b/docs/main.go @@ -3,6 +3,7 @@ package main import ( "bytes" "embed" + "flag" "fmt" "log" "os" @@ -27,9 +28,11 @@ var ( ) func main() { - semver := "latest" - if len(os.Args) > 1 { - semver = os.Args[1] + semver := flag.Arg(0) + if len(semver) == 0 { + semver = "latest" + } else if semver[0] == 'v' { + semver = semver[1:] } if err := generate(semver); err != nil { diff --git a/tools/publish/main.go b/tools/publish/main.go index 20afd7b20..86cc5dbc9 100644 --- a/tools/publish/main.go +++ b/tools/publish/main.go @@ -43,6 +43,8 @@ func main() { semver := flag.Arg(0) if len(semver) == 0 { log.Fatalln("Missing required arg: version") + } else if semver[0] == 'v' { + semver = semver[1:] } ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)