on: push: tags: - "v**" permissions: # Same as deploy2.yml contents: "write" pages: "write" id-token: "write" jobs: update-versions: runs-on: "ubuntu-latest" steps: - uses: "actions/checkout@v4" with: # Ensure we are not in a detached HEAD state ref: "master" # Check that the tag commit is the latest master commit - run: | git fetch --tags tag_commit=$(git rev-parse ${{ github.ref }}) master_commit=$(git rev-parse master) if [ "$tag_commit" != "$master_commit" ]; then echo "The tag commit ($tag_commit) is not the latest master commit ($master_commit)" exit 1 fi - run: "echo 'CLEAN_VERSION=${{ github.ref }}' | sed 's,refs/tags/v,,g' >> $GITHUB_ENV" # Write the new version to package.json - uses: "actions/setup-node@v4" - run: "yarn version --new-version $CLEAN_VERSION --no-git-tag-version" # Write the new version to pyproject.toml - run: "pipx install poetry" - uses: "actions/setup-python@v5" with: python-version: "3.12" cache: "poetry" - run: "poetry version $CLEAN_VERSION" # Commit the changes and move the tag! - run: | git config --global user.email "yeicor@users.noreply.github.com" git config --global user.name "Yeicor" if git commit -am "Automatically update version to $CLEAN_VERSION"; then git push # Move the tag to the new commit git tag -f -a "v$CLEAN_VERSION" -m "v$CLEAN_VERSION" git push -f --tags # Force push the tag to GitHub # The tag move will NOT trigger a new workflow else echo "No source change detected on version update (did you repeat a release tag??)" exit 1 fi deploy: # Makes sure all artifacts are updated and use the new version for the next deployment steps needs: "update-versions" uses: "./.github/workflows/deploy2.yml" secrets: "inherit" # Inherit the secrets from the parent workflow with: ref: "master" # Ensure we are cloning the latest version of the repository