goldwarden/.github/workflows/release.yml
2024-05-25 09:36:16 +02:00

228 lines
7.2 KiB
YAML

on:
release:
types: [created]
permissions:
contents: write
packages: write
env:
GO_VERSION: '1.22'
jobs:
merge_release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Merge development -> staging
uses: devmasx/merge-branch@master
with:
type: now
from_branch: main
target_branch: release
github_token: ${{ secrets.GITHUB_TOKEN }}
build_linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
- name: Write version
run: echo "${{ github.event.release.tag_name }}" > ./cli/cmd/version.txt
- name: Install libfido2-dev
run: sudo apt-get install -y libfido2-dev
- name: Build
run: go build -o goldwarden_linux_x86_64 -v .
- uses: AButler/upload-release-assets@v2.0
with:
files: './goldwarden_linux_x86_64'
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Move binaries to directories
run: |
mkdir -p .debpkg/usr/bin
mkdir -p .rpmpkg/usr/bin
cp -p goldwarden_linux_x86_64 .debpkg/usr/bin/goldwarden
cp -p goldwarden_linux_x86_64 .rpmpkg/usr/bin/goldwarden
mkdir -p .debpkg/usr/share/polkit-1/actions/
mkdir -p .rpmpkg/usr/share/polkit-1/actions/
cp -p cli/resources/com.quexten.goldwarden.policy .debpkg/usr/share/polkit-1/actions/
cp -p cli/resources/com.quexten.goldwarden.policy .rpmpkg/usr/share/polkit-1/actions/
- uses: jiro4989/build-deb-action@v3
with:
package: goldwarden
package_root: .debpkg
maintainer: quexten
version: ${{ github.ref }}
arch: 'amd64'
desc: 'Goldwarden'
- uses: AButler/upload-release-assets@v3.0
with:
files: './*.deb'
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: jiro4989/build-rpm-action@v2
with:
summary: 'Goldwarden'
package: goldwarden
package_root: .rpmpkg
maintainer: quexten
version: ${{ github.ref }}
arch: 'x86_64'
desc: 'Goldwarden'
- name: Move binaries to directories
run:
"rm ./goldwarden-debuginfo*"
- uses: AButler/upload-release-assets@v2.0
with:
files: './*.rpm'
repo-token: ${{ secrets.GITHUB_TOKEN }}
build_linux_arm64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Write version
run: echo "${{ github.event.release.tag_name }}" > ./cli/cmd/version.txt
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
- name: Build
run: GOARCH=arm64 go build -tags nofido2 -o goldwarden_linux_arm64 -v .
- uses: AButler/upload-release-assets@v2.0
with:
files: './goldwarden_linux_arm64'
repo-token: ${{ secrets.GITHUB_TOKEN }}
build_linux_x86:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Write version
run: echo "${{ github.event.release.tag_name }}" > ./cli/cmd/version.txt
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
- name: Build
run: GOARCH=386 go build -tags nofido2 -o goldwarden_linux_x86 -v .
- uses: AButler/upload-release-assets@v2.0
with:
files: './goldwarden_linux_x86'
repo-token: ${{ secrets.GITHUB_TOKEN }}
build_macos_x86_64:
runs-on: macos-13
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Write version
run: echo "${{ github.event.release.tag_name }}" > ./cli/cmd/version.txt
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
- name: Set up Homebrew
id: set-up-homebrew
uses: Homebrew/actions/setup-homebrew@master
- name: Fido2
run: brew install libfido2
- name: Build
run: go build -o "goldwarden_macos_x86_64" -v .
- uses: AButler/upload-release-assets@v2.0
with:
files: './goldwarden_macos_x86_64'
repo-token: ${{ secrets.GITHUB_TOKEN }}
build_macos_aarch64:
runs-on: macos-14
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Write version
run: echo "${{ github.event.release.tag_name }}" > ./cli/cmd/version.txt
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
- name: Set up Homebrew
id: set-up-homebrew
uses: Homebrew/actions/setup-homebrew@master
- name: Fido2
run: brew install libfido2
- name: Build
run: go build -o "goldwarden_macos_aarch64" -v .
- uses: AButler/upload-release-assets@v2.0
with:
files: './goldwarden_macos_aarch64'
repo-token: ${{ secrets.GITHUB_TOKEN }}
build_windows_x86_64:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Write version
run: echo "${{ github.event.release.tag_name }}" > ./cli/cmd/version.txt
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
- uses: MinoruSekine/setup-scoop@v2
- name: Fido2
run: |
scoop bucket add keys.pub https://github.com/keys-pub/scoop-bucket
scoop install libfido2
- name: Build
run: go build -o "goldwarden_windows_x86_64.exe" -v .
- uses: AButler/upload-release-assets@v2.0
with:
files: './goldwarden_windows_x86_64.exe'
repo-token: ${{ secrets.GITHUB_TOKEN }}
build_windows_aarch64:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Write version
run: echo "${{ github.event.release.tag_name }}" > ./cli/cmd/version.txt
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
- name: Build
run: set GOARCH=arm64 && go build -tags nofido2 -o "goldwarden_windows_aarch64.exe" -v .
- uses: AButler/upload-release-assets@v2.0
with:
files: './goldwarden_windows_aarch64.exe'
repo-token: ${{ secrets.GITHUB_TOKEN }}
publish_to_aur:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Write version
run: echo "${GITHUB_REF#refs/tags/}" > ./cli/cmd/version.txt
- name: Write release version
run: |
VERSION=${GITHUB_REF_NAME#v}
echo Version: $VERSION
echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Replace version in PKGBUILD
run: sed -i "s/pkgver=.*/pkgver=${VERSION}/" ./.github/workflows/PKGBUILD
- name: Publish AUR package
uses: KSXGitHub/github-actions-deploy-aur@v2.7.0
with:
pkgname: goldwarden
updpkgsums: true
pkgbuild: ./.github/workflows/PKGBUILD
commit_username: ${{ secrets.AUR_USERNAME }}
commit_email: ${{ secrets.AUR_EMAIL }}
ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
commit_message: Update AUR package from GitHub Actions automation
ssh_keyscan_types: ed25519