Skip to content

fix: first checkout the branch then download the file #78

fix: first checkout the branch then download the file

fix: first checkout the branch then download the file #78

Workflow file for this run

name: Release
on:
push:
branches:
- master
jobs:
setup_release:
name: Prepare release
permissions:
contents: write
issues: write
pull-requests: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
- name: cache NPM
uses: actions/[email protected]
id: npm-cache
with:
path: |
**/node_modules
${{ needs.install.outputs.npm-cache-dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Setup Node.js environment
uses: actions/[email protected]
with:
node-version: "lts/*"
- name: Install dependencies
run: npm ci
- name: next release version
id: next_release_version
run: |
export NEXT_TAG_VERSION=$(npx semantic-release --dry-run | grep 'The next release version is' | sed -E 's/.* ([[:digit:].]+)$/\1/')
echo "new_tag_version=${NEXT_TAG_VERSION}" >> $GITHUB_OUTPUT
echo "new_tag_version=${NEXT_TAG_VERSION}"
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
outputs:
new_tag_version: ${{ steps.next_release_version.outputs.new_tag_version }}
process_release:
name: Process release
needs: setup_release
if: ${{ needs.setup_release.outputs.new_tag_version != '' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Print orig file
run: |
FILE="test.adoc"
cat $FILE
- name: Update version and date in file
if: ${{needs.setup_release.outputs.new_tag_version != ''}}
run: |
echo "new_tag_version=${{ needs.setup_release.outputs.new_tag_version }}"
# Get the version from the output of the Semantic Release step
VERSION=${{ needs.setup_release.outputs.new_tag_version }}
# Get the current date
DATE=$(date +%Y-%m-%d)
# File where the version and date need to be updated
FILE="test.adoc"
# Regular expression to match the string to be replaced
REGEX="v[0-9]\+\.[0-9]\+\.[0-9]\+\, [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}"
# Replace the string in file
sed -i "s/$REGEX/v$VERSION, $DATE/g" $FILE
- name: Print new file
if: ${{needs.setup_release.outputs.new_tag_version != ''}}
run: |
#Print the file
FILE="test.adoc"
cat $FILE
- name: Upload updated file
uses: actions/upload-artifact@v4
with:
name: updated-file
path: test.adoc
- name: Set output
id: output_version
run: echo "new_tag_version=${{ needs.setup_release.outputs.new_tag_version }}" >> $GITHUB_OUTPUT
outputs:
new_tag_version: ${{ steps.output_version.outputs.new_tag_version }}
complete_release:
name: Complete release
needs: process_release
if: ${{ needs.process_release.outputs.new_tag_version != '' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
- name: Download updated file
uses: actions/download-artifact@v4
with:
name: updated-file
- name: cache NPM
uses: actions/[email protected]
id: npm-cache
with:
path: |
**/node_modules
${{ needs.install.outputs.npm-cache-dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Setup Node.js environment
uses: actions/[email protected]
with:
node-version: "lts/*"
- name: Install dependencies
run: npm ci
- name: Release with next Semantic Version
if: ${{needs.process_release.outputs.new_tag_version != ''}}
run: npx semantic-release
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
GIT_COMMITTER_NAME: "Arc-E-Tect"
GIT_COMMITTER_EMAIL: "[email protected]"
GIT_AUTHOR_NAME: "Arc-E-Tect"
GIT_AUTHOR_EMAIL: "[email protected]"
- name: No release with next Semantic Version
if: ${{needs.process_release.outputs.new_tag_version == ''}}
run: echo "No new release required..."