chore(deps): update archivebox/archivebox docker tag to v0.7.4 #5
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: Renovate CI | |
on: | |
pull_request: | |
jobs: | |
get-last-commit-message: | |
if: contains(github.head_ref, 'renovate/') | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
- name: Get last commit message | |
id: get-last-commit-message | |
run: | | |
echo "last_commit_message=$(git log -1 --pretty=%B)" >> $GITHUB_OUTPUT | |
update-config: | |
needs: get-last-commit-message | |
if: "!contains(${{ needs.get-last-commit-message.outputs.last_commit_message }}, '[ready]')" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
with: | |
fetch-depth: 0 | |
token: ${{ secrets.PERSONAL_TOKEN }} | |
- name: Get changed files | |
uses: jitterbit/get-changed-files@v1 | |
id: files | |
- name: Apply config update | |
run: | | |
for changed_file in ${{ steps.files.outputs.all }}; do | |
echo "Changed file: $changed_file" # example: apps/jackett/docker-compose.yml | |
if [[ $changed_file == *"docker-compose.yml"* ]]; then | |
app_name=$(echo $changed_file | cut -d'/' -f 2) | |
echo "App name: $app_name" | |
./.github/workflows/renovate-app-version.sh $app_name | |
fi | |
done | |
- name: Commit and push changes | |
uses: EndBug/add-and-commit@v9 | |
with: | |
author_name: Tipi CI | |
author_email: [email protected] | |
message: "Update app version [ready]" | |
commit: --no-verify | |
push: origin HEAD:${{ github.head_ref }} | |
ci: | |
needs: | |
- update-config | |
- get-last-commit-message | |
if: contains(${{ needs.get-last-commit-message.outputs.last_commit_message }}, '[ready]') | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
- name: Install Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- uses: pnpm/[email protected] | |
name: Install pnpm | |
id: pnpm-install | |
with: | |
version: 8 | |
run_install: false | |
- name: Get pnpm store directory | |
id: pnpm-cache | |
run: | | |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Install dependencies | |
run: pnpm install | |
- name: Run global tests | |
run: pnpm test | |
- name: Run linter | |
run: pnpm run lint | |
- name: Check bumped version | |
id: check-bumped-version | |
uses: actions/github-script@v7 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
script: | | |
const semver = require('semver') | |
const { data } = await github.rest.pulls.listFiles({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
pull_number: context.issue.number | |
}); | |
const modifiedFiles = data.map(file => file.filename); | |
const filesInAppsFolder = modifiedFiles.filter(file => file.includes('apps/')) | |
if (filesInAppsFolder.length < modifiedFiles.length) { | |
console.log('Not all files are in apps folder, skipping automerge') | |
core.setOutput('major_bump', 'true') | |
return | |
} | |
const configs = modifiedFiles.filter(file => file.includes('config.json')) | |
let majorBump = 'false' | |
for (const configFile of configs) { | |
const baseContent = await github.rest.repos.getContent({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
path: configFile, | |
ref: context.payload.pull_request.base.ref | |
}); | |
const baseConfig = JSON.parse(Buffer.from(baseContent.data.content, 'base64').toString('utf-8')) | |
const currentContent = await github.rest.repos.getContent({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
path: configFile, | |
ref: context.payload.pull_request.head.ref | |
}); | |
const currentConfig = JSON.parse(Buffer.from(currentContent.data.content, 'base64').toString('utf-8')) | |
const baseVersion = semver.coerce(baseConfig.version) | |
const currentVersion = semver.coerce(currentConfig.version) | |
if (currentVersion?.major > baseVersion?.major) { | |
console.log('Major bump detected, skipping automerge') | |
majorBump = 'true' | |
break | |
} | |
} | |
core.setOutput('major_bump', majorBump) | |
- name: Label this PR as "automerge" if major_bump is false | |
if: steps.check-bumped-version.outputs.major_bump == 'false' | |
uses: actions/github-script@v7 | |
with: | |
github-token: ${{ secrets.PERSONAL_TOKEN }} | |
script: | | |
github.rest.issues.addLabels({ | |
issue_number: context.issue.number, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
labels: ["automerge"] | |
}) |