fix(CI): update filename of version artifact #175
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
# Build and publish a release of InputPlumber using semantic-release whenever | |
# changes are merged into main. | |
name: "🎉 Release" | |
on: | |
push: | |
branches: | |
- main | |
- v0.x | |
- v1.x | |
paths-ignore: | |
- README.md | |
- "docs/**" | |
# Jobs to run | |
jobs: | |
release: | |
name: 🎉 Publish to GitHub | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup Node.js | |
uses: actions/setup-node@v1 | |
with: | |
node-version: "20" | |
- name: Install Dependencies | |
run: npm install @semantic-release/exec @google/semantic-release-replace-plugin @semantic-release/git | |
- name: Release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: make sem-release | |
# In ".releaserc.yaml" a step is defined to write the release version to | |
# ".version.txt" upon successful release. This step checks to see if that | |
# exists to determine if the other jobs need to run. | |
- id: status | |
name: Set release status | |
shell: bash | |
run: | | |
if [ -f .version.txt ]; then | |
echo "was_released=yes" >> "$GITHUB_OUTPUT" | |
else | |
echo "was_released=no" >> "$GITHUB_OUTPUT" | |
fi | |
# Upload the package build for the AUR publish step | |
- name: Upload PKGBUILD | |
uses: actions/upload-artifact@v4 | |
if: steps.status.outputs.was_released == 'yes' | |
with: | |
name: PKGBUILD | |
path: ./pkg/archlinux/PKGBUILD | |
if-no-files-found: error | |
- name: Upload Release Version | |
uses: actions/upload-artifact@v4 | |
if: steps.status.outputs.was_released == 'yes' | |
with: | |
name: version.txt | |
path: .version.txt | |
if-no-files-found: error | |
include-hidden-files: true | |
outputs: | |
should_publish: ${{ steps.status.outputs.was_released }} | |
publish-to-copr: | |
name: 🟤 Publish to COPR | |
needs: release | |
if: needs.release.outputs.should_publish == 'yes' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Trigger COPR Build | |
run: curl -X POST ${{ secrets.COPR_WEBHOOK_URL }} | |
publish-to-aur: | |
name: 🐧 Publish to AUR | |
needs: release | |
if: needs.release.outputs.should_publish == 'yes' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download PKGBUILD | |
uses: actions/download-artifact@v4 | |
with: | |
name: PKGBUILD | |
- name: Download Release Version | |
uses: actions/download-artifact@v4 | |
with: | |
name: version.txt | |
- name: Setup SSH | |
uses: MrSquaare/ssh-setup-action@v3 | |
with: | |
host: aur.archlinux.org | |
private-key: ${{ secrets.AUR_SSH_KEY }} | |
- name: Checkout AUR bin | |
run: git clone ssh://[email protected]/inputplumber-bin.git | |
- name: Copy PKGBUILD to bin repo | |
run: cp ./PKGBUILD inputplumber-bin/ | |
- name: Build bin package | |
working-directory: inputplumber-bin | |
run: make in-docker | |
- name: Commit and publish bin package | |
shell: bash | |
working-directory: inputplumber-bin | |
run: | | |
git config user.name "github-actions[bot]" | |
git config user.email "shadowblip+github-actions[bot]@users.noreply.github.com" | |
git add .SRCINFO PKGBUILD | |
git commit -m "Update to $(grep '^pkgver=' PKGBUILD | cut -d'=' -f2)" | |
git push origin master | |
- name: Checkout AUR git | |
run: git clone ssh://[email protected]/inputplumber-git.git | |
- name: Build git package | |
working-directory: inputplumber-git | |
run: make in-docker | |
- name: Commit and publish git package | |
shell: bash | |
working-directory: inputplumber-git | |
run: | | |
git config user.name "github-actions[bot]" | |
git config user.email "shadowblip+github-actions[bot]@users.noreply.github.com" | |
git add .SRCINFO PKGBUILD | |
git commit -m "Update to $(grep '^pkgver=' PKGBUILD | cut -d'=' -f2)" | |
git push origin master | |
- name: Checkout AUR | |
run: git clone ssh://[email protected]/inputplumber.git | |
- name: Copy Makefile from git package and update PKGBUILD | |
run: | | |
cp inputplumber-git/Makefile inputplumber/Makefile | |
cp inputplumber-git/Dockerfile inputplumber/Dockerfile | |
curl -sL https://github.com/ShadowBlip/InputPlumber/archive/refs/tags/v$(cat .version.txt).tar.gz | sha256sum | cut -d' ' -f1 > hash.txt | |
sed -i "s/^pkgver=.*/pkgver=$(cat .version.txt)/g" inputplumber/PKGBUILD | |
sed -i "s/^sha256sums=.*/sha256sums=('$(cat hash.txt)')/g" inputplumber/PKGBUILD | |
- name: Build package | |
working-directory: inputplumber | |
run: | | |
make in-docker | |
- name: Commit and publish package | |
shell: bash | |
working-directory: inputplumber | |
run: | | |
git config user.name "github-actions[bot]" | |
git config user.email "shadowblip+github-actions[bot]@users.noreply.github.com" | |
git add .SRCINFO PKGBUILD | |
git commit -m "Update to $(grep '^pkgver=' PKGBUILD | cut -d'=' -f2)" | |
git push origin master |