Check Dev Release #69
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: Check Dev Release | |
on: | |
schedule: | |
- cron: '0 0 * * *' # Runs daily at midnight | |
workflow_dispatch: # Allows manual triggering | |
jobs: | |
check-release: | |
runs-on: ubuntu-latest | |
outputs: | |
current: ${{ steps.check_repo.outputs.current_version }} | |
latest: ${{ steps.check_anaconda.outputs.latest_version }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Get current version from repo | |
id: check_repo | |
run: | | |
# Read the local version from version.json | |
CURRENT_VERSION=$(jq -r .dev ab_releases/latest.json) | |
echo "Current version: $CURRENT_VERSION" | |
echo "current_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT | |
- name: Get latest version from Anaconda | |
id: check_anaconda | |
run: | | |
# Variables | |
ANACONDA_API_URL="https://api.anaconda.org/package/bsteubing/activity-browser-dev" | |
LABEL="main" | |
# Fetch the package information from Anaconda | |
PACKAGE_INFO=$(curl -s $ANACONDA_API_URL) | |
# Extract the latest version for the specified label | |
LATEST_VERSION=$(echo $PACKAGE_INFO | jq -r --arg LABEL "$LABEL" '.files[] | select(.labels[] == $LABEL) | .version' | sort -V | tail -n 1) | |
echo "Latest version: $LATEST_VERSION" | |
echo "latest_version=$LATEST_VERSION" >> $GITHUB_OUTPUT | |
build-dev-windows: | |
runs-on: ${{matrix.os}} | |
needs: check-release | |
if: ${{ needs.check-release.outputs.current != needs.check-release.outputs.latest }} | |
strategy: | |
matrix: | |
os: [windows-latest, macos-latest] | |
include: | |
- location: ab_releases/dev/windows/win-environment- | |
shorthand: win | |
os: windows-latest | |
- location: ab_releases/dev/macos/mac-environment- | |
shorthand: mac | |
os: macos-latest | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install current environment | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: ${{matrix.location}}${{needs.check-release.outputs.current}}.txt | |
environment-name: environment | |
create-args: python=3.11 | |
- name: Update to latest | |
run: | | |
micromamba install -n environment -c bsteubing -y activity-browser-dev=${{needs.check-release.outputs.latest}} | |
micromamba env export --explicit -n environment >> ${{matrix.location}}${{needs.check-release.outputs.latest}}.txt | |
- name: Upload environment as artifact | |
uses: actions/upload-artifact@master | |
with: | |
name: ${{matrix.shorthand}}-release-spec | |
path: ${{matrix.location}}${{needs.check-release.outputs.latest}}.txt | |
create-pull-request: | |
runs-on: ubuntu-latest | |
needs: [check-release, build-dev-windows] | |
permissions: | |
pull-requests: write | |
contents: write | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Create branch | |
run: git checkout -b spec-${{needs.check-release.outputs.latest}} | |
- name: Fetch Windows release spec | |
uses: actions/download-artifact@master | |
with: | |
name: win-release-spec | |
path: ab_releases/dev/windows/ | |
- name: Fetch MacOS release spec | |
uses: actions/download-artifact@master | |
with: | |
name: mac-release-spec | |
path: ab_releases/dev/macos/ | |
- name: Update latest.json | |
run: | | |
JSON_KEY="dev" | |
JSON_VALUE="${{needs.check-release.outputs.latest}}" | |
jq --arg value "$JSON_VALUE" '.dev = $value' ab_releases/latest.json > tmp.json && mv tmp.json ab_releases/latest.json | |
- name: Create commit | |
run: | | |
git config --global user.name 'github-actions[bot]' | |
git config --global user.email 'github-actions[bot]@users.noreply.github.com' | |
git add ab_releases/dev/windows/win-environment-${{needs.check-release.outputs.latest}}.txt | |
git add ab_releases/dev/macos/mac-environment-${{needs.check-release.outputs.latest}}.txt | |
git add ab_releases/latest.json | |
git commit -m "Updated dev specs to ${{needs.check-release.outputs.latest}}" | |
git push origin spec-${{needs.check-release.outputs.latest}} | |
- name: Create PR | |
run: gh pr create --title 'Updated dev specs to ${{needs.check-release.outputs.latest}}' --body 'Created by Github action' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |