Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
157 changes: 80 additions & 77 deletions .github/workflows/release-and-build.yml
Original file line number Diff line number Diff line change
@@ -1,85 +1,88 @@
name: 'Release and Build'
on:
workflow_dispatch:
inputs:
prerelease:
description: "Prerelease"
required: true
default: false
type: boolean
draft:
description: "Draft"
required: true
default: false
type: boolean
version-increment-type:
description: 'Which part of the version to increment:'
required: true
type: choice
options:
- major
- minor
- patch
default: 'patch'
workflow_dispatch:
inputs:
prerelease:
description: 'Prerelease'
Comment thread
jonathannorris marked this conversation as resolved.
required: true
default: false
type: boolean
draft:
description: 'Draft'
required: true
default: false
type: boolean
version-increment-type:
description: 'Which part of the version to increment:'
required: true
type: choice
options:
- major
- minor
- patch
default: 'patch'
permissions:
contents: write
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
token: ${{ secrets.AUTOMATION_USER_TOKEN }}
release:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
token: ${{ secrets.AUTOMATION_USER_TOKEN }}
Comment thread
jonathannorris marked this conversation as resolved.
fetch-depth: 0

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Setup Yarn
run: |
corepack enable
corepack prepare yarn@4.2.1 --activate
- name: Install dependencies
shell: bash
run: yarn install
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Setup Yarn
run: |
corepack enable
corepack prepare yarn@4.2.1 --activate
- name: Install dependencies
shell: bash
run: yarn install

- name: Build project
shell: bash
run: yarn build
- name: Prepare Release
id: prepare_release
uses: DevCycleHQ/release-action/prepare-release@v2.3.0
with:
github-token: ${{ secrets.AUTOMATION_USER_TOKEN }}
version-increment-type: ${{ github.event.inputs.version-increment-type || 'patch' }}
prerelease: ${{ github.event.inputs.prerelease }}
draft: ${{ github.event.inputs.draft }}
- name: Update README.md
run: |
sed -i -E 's/(DevCycleHQ\/feature-flag-code-usage-action@)(main|v[0-9]+\.[0-9]+\.[0-9]+)/\1v${{steps.prepare_release.outputs.next-release-tag}}/g' README.md
if: github.event.inputs.draft != true
- name: Build project
shell: bash
run: yarn build
- name: Prepare Release
id: prepare_release
uses: DevCycleHQ/release-action/prepare-release@v2.3.0
with:
github-token: ${{ secrets.AUTOMATION_USER_TOKEN }}
version-increment-type: ${{ github.event.inputs.version-increment-type || 'patch' }}
prerelease: ${{ github.event.inputs.prerelease }}
draft: ${{ github.event.inputs.draft }}
- name: Update README.md
run: |
sed -i -E 's/(DevCycleHQ\/feature-flag-code-usage-action@)(main|v[0-9]+\.[0-9]+\.[0-9]+)/\1v${{steps.prepare_release.outputs.next-release-tag}}/g' README.md
if: github.event.inputs.draft != true

- name: Commit version change and README update
run: |
git config --global user.email "foundation-admin@devcycle.com"
git config --global user.name "DevCycle Automation"
git add .
git commit -m "Release ${{steps.prepare_release.outputs.next-release-tag}} and update README"
if: github.event.inputs.draft != true
- name: Commit version change and README update
run: |
git config --global user.email "foundation-admin@devcycle.com"
git config --global user.name "DevCycle Automation"
git add .
git commit -m "Release ${{steps.prepare_release.outputs.next-release-tag}} and update README"
if: github.event.inputs.draft != true

- name: Push version change
run: |
git pull
git push -u origin main
if: github.event.inputs.draft != true
- name: Create Release
id: create_release
uses: DevCycleHQ/release-action/create-release@v2.3.0
with:
tag: ${{ steps.prepare_release.outputs.next-release-tag }}
target: ${{ github.sha }}
changelog: ${{ steps.prepare_release.outputs.changelog }}
github-token: ${{ secrets.AUTOMATION_USER_TOKEN }}
prerelease: ${{ github.event.inputs.draft }}
draft: ${{ github.event.inputs.draft }}
- name: Push version change
id: push_version
run: |
git pull --ff-only
git push -u origin main
echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
if: github.event.inputs.draft != true
- name: Create Release
id: create_release
uses: DevCycleHQ/release-action/create-release@v2.3.0
with:
tag: ${{ steps.prepare_release.outputs.next-release-tag }}
target: ${{ steps.push_version.outputs.sha || github.sha }}
changelog: ${{ steps.prepare_release.outputs.changelog }}
github-token: ${{ secrets.AUTOMATION_USER_TOKEN }}
prerelease: ${{ github.event.inputs.prerelease }}
draft: ${{ github.event.inputs.draft }}
Loading