fix: first checkout the branch then download the file #78
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: 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..." |