diff --git a/.github/workflows/pre-release.yaml b/.github/workflows/pre-release.yaml new file mode 100644 index 00000000..aa919659 --- /dev/null +++ b/.github/workflows/pre-release.yaml @@ -0,0 +1,49 @@ +name: Pre-release + +on: + push: + tags: + - "v*-(alpha|beta|rc).*" + +jobs: + release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + - run: npm i -g @apidevtools/swagger-cli@4 + - name: Update Spec version + run: "sed -i 's/version: \"Dev/version: \"${{ github.ref_name }}/' ./beacon-node-oapi.yaml" + - name: Bundle yaml spec + run: "swagger-cli bundle ./beacon-node-oapi.yaml -r -t yaml -o ./deploy/beacon-node-oapi.yaml" + - name: Bundle json spec + run: "swagger-cli bundle ./beacon-node-oapi.yaml -r -t json -o ./deploy/beacon-node-oapi.json" + - name: Create Release Notes + run: | + echo "The following changes are included in this release:" > release-notes.md + awk '/^## Development Version/ {flag=1; next} /^## / {flag=0} flag { \ + if ($0 ~ /\| \[#/) {sub(/^\| /, "- "); sub(/\| .*$/, ""); sub(/[[:space:]]+$/, ""); print}}' CHANGES.md >> release-notes.md + - name: Create Release + id: create_release + uses: softprops/action-gh-release@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + name: ${{ github.ref_name }} + tag_name: ${{ github.ref_name }} + body_path: "release-notes.md" + draft: false + prerelease: true + files: | + ./deploy/beacon-node-oapi.yaml + ./deploy/beacon-node-oapi.json + fail_on_unmatched_files: true + - name: Rollback Release + if: failure() + uses: author/action-rollback@1.0.4 + with: + release_id: ${{ steps.create_release.outputs.id }} + tag: ${{ github.ref }} + delete_orphan_tag: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 0f7a962d..7315d1f7 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -4,6 +4,7 @@ on: push: tags: - "v*" + - "!v*-(alpha|beta|rc).*" jobs: release: diff --git a/README.md b/README.md index df41a324..e2f16cf0 100644 --- a/README.md +++ b/README.md @@ -81,3 +81,9 @@ redocly lint beacon-node-oapi.yaml ``` {url: "./releases//beacon-node-oapi.json", name: ""}, ``` + +### Pre-releases + +To create a pre-release, simply push a new tag with the suffix `-alpha.x`. The CD will create a github release and upload the bundled spec files. + +Pre-releases will not be listed in `index.html` and are intended to allow early testing against the spec. diff --git a/wordlist.txt b/wordlist.txt index 35f7a54d..bfb27ac7 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -23,6 +23,7 @@ MEV PayloadAttributesV Gwei prev +pre ENR enr attnets