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