Skip to content

Update README and add automated release workflow #1

Update README and add automated release workflow

Update README and add automated release workflow #1

Workflow file for this run

name: Create Release
on:
push:
branches: [ sudo ]
jobs:
release:
runs-on: macOS-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Cori Auth Step
id: generate-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.CORI_APP_ID }}
private-key: ${{ secrets.CORI_APP_PRIVATE_KEY }}
- name: Create a requirements.txt file
run: |
echo "names_generator" > requirements.txt
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Generate Dockerlike release name
id: dockerlike-release-name
run: |
DOCKERLIKE_RELEASE_NAME=$(python -c "from names_generator import generate_name; print(generate_name())")
echo "DOCKERLIKE_RELEASE_NAME=${DOCKERLIKE_RELEASE_NAME}" >> $GITHUB_ENV
- name: Get latest version
id: get_version
env:
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
run: |
# Get the latest version tag
LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
# Increment patch version
MAJOR=$(echo $LATEST_TAG | cut -d. -f1)
MINOR=$(echo $LATEST_TAG | cut -d. -f2)
PATCH=$(echo $LATEST_TAG | cut -d. -f3)
NEW_PATCH=$((PATCH + 1))
NEW_VERSION="${MAJOR}.${MINOR}.${NEW_PATCH}"
echo "NEW_VERSION=${NEW_VERSION}" >> $GITHUB_ENV
- name: Get commits
id: get_commits
shell: sh
run: |
git fetch --tags
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
COMMITS=$(git log --oneline --no-merges --pretty=format:"%s" ${LAST_TAG}..HEAD)
COMMITS=$(echo "$COMMITS" | tr '\n' ';')
echo "ALL_COMMITS=$COMMITS" >> $GITHUB_ENV
- name: Generate Release notes
id: generate-release-notes
shell: sh
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL }}
DOCKERLIKE_RELEASE_NAME: ${{ env.DOCKERLIKE_RELEASE_NAME }}
NEW_VERSION: ${{ env.NEW_VERSION }}
COMMITS: ${{ env.ALL_COMMITS }}
run: |
echo "Generating release notes..."
python3 not-your-type/release-notes-ai.py
echo "Release notes generated"
- name: Create Release
env:
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
NEW_VERSION: ${{ env.NEW_VERSION }}
DOCKERLIKE_RELEASE_NAME: ${{ env.DOCKERLIKE_RELEASE_NAME }}
BRANCH: ${{ github.ref }}
run: |
gh release create ${NEW_VERSION} \
--title "${DOCKERLIKE_RELEASE_NAME}" \
--notes-file release_notes.md \
--target ${BRANCH}