Production Deploy #2
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Production Deploy | |
on: | |
workflow_dispatch: | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Ensure pre-requisites for deployment are met | |
uses: actions/github-script@v7 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
script: | | |
const { owner, repo } = context.repo; | |
/* | |
* We should only need to load 1 release here, as pending should be at the top of the list. | |
* We're loading a few extras here in case we get into a weird state. | |
*/ | |
const PAGE_SIZE = 5; | |
const releases = await github.rest.repos.listReleases({ owner, repo }); | |
const pendingReleases = releases.data.filter(release => release.prerelease); | |
if (pendingReleases.length > 1) { | |
throw new Error(`Found more than one pending release: ${pendingReleases.map(release => release.tag_name).join(', ')}`); | |
} | |
const targetRelease = pendingReleases.find(release => release.tag_name === "${{github.ref_name}}"); | |
if (!targetRelease) { | |
throw new Error(`No pending release found for tag: ${github.ref_name}`); | |
} | |
console.log(`Found pending release, proceeding with deployment: ${targetRelease.url}`); |