Skip to content

Commit

Permalink
feat: Update GitHub workflow release.yml to use latest actions
Browse files Browse the repository at this point in the history
Updated GitHub workflow "Test an and release" from release.yml to use latest GitHub actions.
Changes:
 * Bumps actions/checkout to v4
 * Bumps actions/setup-go to v5
 * Bumps goreleaser/goreleaser-action to v6
 * Bumps actions/upload-artifact to v4
 * Bumps crazy-max/ghaction-import-gpg to v6
 * Bumps actions/download-artifact to v4
 * Bumps softprops/action-gh-release to v2
 * Bumps webfactory/ssh-agent to v0.9.0
  • Loading branch information
4ndyZ committed Jul 1, 2024
1 parent 16042a7 commit 5a97d03
Showing 1 changed file with 128 additions and 128 deletions.
256 changes: 128 additions & 128 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
name: "Test and release"

on:
Expand All @@ -12,7 +13,7 @@ jobs:
type: ${{ steps.get_type.outputs.type }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0

Expand All @@ -38,13 +39,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Go
id: setup_go
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
cache: true
Expand All @@ -63,29 +64,29 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Go
id: setup_go
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
cache: true
check-latest: true

- name: Run GoReleaser snapshot
id: goreleaser-snapshot
uses: goreleaser/goreleaser-action@v4
uses: goreleaser/goreleaser-action@v6
with:
version: latest
args: --clean --snapshot
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Upload artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: packages-snapshot
path: |
Expand All @@ -105,21 +106,21 @@ jobs:
gpg_fingerprint: ${{ steps.import_gpg.outputs.fingerprint }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Go
id: setup_go
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
cache: true
check-latest: true

- name: Import GPG key
id: import_gpg
uses: crazy-max/ghaction-import-gpg@v5
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}
Expand All @@ -130,7 +131,7 @@ jobs:
- name: Run GoReleaser release
id: goreleaser-release
uses: goreleaser/goreleaser-action@v4
uses: goreleaser/goreleaser-action@v6
with:
version: latest
args: release --clean
Expand Down Expand Up @@ -169,7 +170,7 @@ jobs:
- name: Upload artifacts
id: upload_artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: packages-release
path: |
Expand All @@ -187,7 +188,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0

Expand All @@ -201,14 +202,14 @@ jobs:
- name: Download artifacts
id: download_artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: packages-release
path: packages

- name: Create GitHub release
id: create_release
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
name: Release v${{ github.ref_name }}
Expand All @@ -221,113 +222,112 @@ jobs:
packages/*.zip
packages/Checksums.txt
# upload-to-deb-repository:
# name: Upload to deb repository
# needs: [ build-release ]
# #if: ${{ needs.prepare.outputs.type == 'release' }}
# runs-on: ubuntu-latest
# steps:
# - name: Download artifacts
# uses: actions/download-artifact@v3
# with:
# name: packages-release
# path: packages
#
# - name: Set up SSH
# id: setup_ssh
# uses: webfactory/[email protected]
# with:
# ssh-private-key: ${{ secrets.REPOSITORY_SSH_KEY }}
# log-public-key: false
#
# - name: Add repository host to known hosts
# run: |
# mkdir -p ~/.ssh
# echo "${{ secrets.KNOWN_HOSTS }}" >> ~/.ssh/known_hosts
#
# - name: Upload using rsync over SSH
# id: upload_to_repository
# run: |
# package_type="deb"
# package_dir="${{ secrets.REPOSITORY_PATH }}/$package_type/pool/main"
#
# packages=$(find packages -type f -name *.$package_type)
#
# for package in $packages; do
# package_name=$(basename $package)
# package_arch=${package_name%.$package_type}
# package_arch=${package_arch##*_}
#
# # Create directory if not exists
# ssh -p ${{ secrets.REPOSITORY_HOST_PORT }} ${{ secrets.REPOSITORY_USER }}@${{ secrets.REPOSITORY_HOST }} \
# "mkdir -p $package_dir"
#
# # Upload package
# echo "Uploading $package_name to ${{ secrets.REPOSITORY_USER }}@${{ secrets.REPOSITORY_HOST }}:$package_dir"
# rsync -avz --no-perms --no-owner --no-group -e "ssh -p ${{ secrets.REPOSITORY_HOST_PORT }}" $package \
# ${{ secrets.REPOSITORY_USER }}@${{ secrets.REPOSITORY_HOST }}:$package_dir/
# done
#
# - name: Update DEB repository
# id: update_deb_repository
# run: |
# package_type="deb"
# base_dir="${{ secrets.REPOSITORY_PATH }}/$package_type"
# package_dir=$base_dir/pool/main
# dist_dir_base=$base_dir/dists
# dist_dir_stable=$dist_dir_base/stable
# dist_dir=$dist_dir_stable/main
#
# ssh -p ${{ secrets.REPOSITORY_HOST_PORT }} ${{ secrets.REPOSITORY_USER }}@${{ secrets.REPOSITORY_HOST }} \
# "cd $base_dir && \
# mkdir -p $package_dir && \
# mkdir -p $dist_dir_base && \
# mkdir -p $dist_dir_stable && \
# mkdir -p $dist_dir && \
# apt-ftparchive packages ${package_dir#"${base_dir}/"}/ > $dist_dir/Packages && \
# gzip -c $dist_dir/Packages > $dist_dir/Packages.gz && \
# bzip2 -c $dist_dir/Packages > $dist_dir/Packages.bz2 && \
# apt-ftparchive release $dist_dir > $dist_dir/Release && \
# gpg2 --homedir=/home/${{ secrets.REPOSITORY_USER }}/.gnupg \
# --batch \
# --pinentry-mode loopback \
# --verbose \
# --local-user "${{ needs.build-release.outputs.gpg_fingerprint }}" \
# --passphrase-file "/home/${{ secrets.REPOSITORY_USER }}/.gnupg/passphrase" \
# --armor \
# --detach-sign \
# --output $dist_dir/Release.gpg \
# --yes $dist_dir/Release && \
# gpg2 --homedir=/home/${{ secrets.REPOSITORY_USER }}/.gnupg \
# --batch \
# --pinentry-mode loopback \
# --verbose \
# --local-user "${{ needs.build-release.outputs.gpg_fingerprint }}" \
# --passphrase-file "/home/${{ secrets.REPOSITORY_USER }}/.gnupg/passphrase" \
# --clearsign \
# --output $dist_dir/InRelease \
# --yes $dist_dir/Release \
# apt-ftparchive release $dist_dir_stable > $dist_dir_stable/Release && \
# gpg2 --homedir=/home/${{ secrets.REPOSITORY_USER }}/.gnupg \
# --batch \
# --pinentry-mode loopback \
# --verbose \
# --local-user "${{ needs.build-release.outputs.gpg_fingerprint }}" \
# --passphrase-file "/home/${{ secrets.REPOSITORY_USER }}/.gnupg/passphrase" \
# --armor \
# --detach-sign \
# --output $dist_dir_stable/Release.gpg \
# --yes $dist_dir_stable/Release && \
# gpg2 --homedir=/home/${{ secrets.REPOSITORY_USER }}/.gnupg \
# --batch \
# --pinentry-mode loopback \
# --verbose \
# --local-user "${{ needs.build-release.outputs.gpg_fingerprint }}" \
# --passphrase-file "/home/${{ secrets.REPOSITORY_USER }}/.gnupg/passphrase" \
# --clearsign \
# --output $dist_dir_stable/InRelease \
# --yes $dist_dir_stable/Release"
# upload-to-deb-repository:
# name: Upload to deb repository
# needs: [ build-release ]
# if: ${{ needs.prepare.outputs.type == 'release' }}
# runs-on: ubuntu-latest
# steps:
# - name: Download artifacts
# uses: actions/download-artifact@v4
# with:
# name: packages-release
# path: packages

# - name: Set up SSH
# id: setup_ssh
# uses: webfactory/[email protected]
# with:
# ssh-private-key: ${{ secrets.REPOSITORY_SSH_KEY }}
# log-public-key: false

# - name: Add repository host to known hosts
# run: |
# mkdir -p ~/.ssh
# echo "${{ secrets.KNOWN_HOSTS }}" >> ~/.ssh/known_hosts

# - name: Upload using rsync over SSH
# id: upload_to_repository
# run: |
# package_type="deb"
# package_dir="${{ secrets.REPOSITORY_PATH }}/$package_type/pool/main"

# packages=$(find packages -type f -name *.$package_type)

# for package in $packages; do
# package_name=$(basename $package)
# package_arch=${package_name%.$package_type}
# package_arch=${package_arch##*_}

# # Create directory if not exists
# ssh -p ${{ secrets.REPOSITORY_HOST_PORT }} ${{ secrets.REPOSITORY_USER }}@${{ secrets.REPOSITORY_HOST }} \
# "mkdir -p $package_dir"

# # Upload package
# echo "Uploading $package_name to ${{ secrets.REPOSITORY_USER }}@${{ secrets.REPOSITORY_HOST }}:$package_dir"
# rsync -avz --no-perms --no-owner --no-group -e "ssh -p ${{ secrets.REPOSITORY_HOST_PORT }}" $package \
# ${{ secrets.REPOSITORY_USER }}@${{ secrets.REPOSITORY_HOST }}:$package_dir/
# done

# - name: Update DEB repository
# id: update_deb_repository
# run: |
# package_type="deb"
# base_dir="${{ secrets.REPOSITORY_PATH }}/$package_type"
# package_dir=$base_dir/pool/main
# dist_dir_base=$base_dir/dists
# dist_dir_stable=$dist_dir_base/stable
# dist_dir=$dist_dir_stable/main

# ssh -p ${{ secrets.REPOSITORY_HOST_PORT }} ${{ secrets.REPOSITORY_USER }}@${{ secrets.REPOSITORY_HOST }} \
# "cd $base_dir && \
# mkdir -p $package_dir && \
# mkdir -p $dist_dir_base && \
# mkdir -p $dist_dir_stable && \
# mkdir -p $dist_dir && \
# apt-ftparchive packages ${package_dir#"${base_dir}/"}/ > $dist_dir/Packages && \
# gzip -c $dist_dir/Packages > $dist_dir/Packages.gz && \
# bzip2 -c $dist_dir/Packages > $dist_dir/Packages.bz2 && \
# apt-ftparchive release $dist_dir > $dist_dir/Release && \
# gpg2 --homedir=/home/${{ secrets.REPOSITORY_USER }}/.gnupg \
# --batch \
# --pinentry-mode loopback \
# --verbose \
# --local-user "${{ needs.build-release.outputs.gpg_fingerprint }}" \
# --passphrase-file "/home/${{ secrets.REPOSITORY_USER }}/.gnupg/passphrase" \
# --armor \
# --detach-sign \
# --output $dist_dir/Release.gpg \
# --yes $dist_dir/Release && \
# gpg2 --homedir=/home/${{ secrets.REPOSITORY_USER }}/.gnupg \
# --batch \
# --pinentry-mode loopback \
# --verbose \
# --local-user "${{ needs.build-release.outputs.gpg_fingerprint }}" \
# --passphrase-file "/home/${{ secrets.REPOSITORY_USER }}/.gnupg/passphrase" \
# --clearsign \
# --output $dist_dir/InRelease \
# --yes $dist_dir/Release \
# apt-ftparchive release $dist_dir_stable > $dist_dir_stable/Release && \
# gpg2 --homedir=/home/${{ secrets.REPOSITORY_USER }}/.gnupg \
# --batch \
# --pinentry-mode loopback \
# --verbose \
# --local-user "${{ needs.build-release.outputs.gpg_fingerprint }}" \
# --passphrase-file "/home/${{ secrets.REPOSITORY_USER }}/.gnupg/passphrase" \
# --armor \
# --detach-sign \
# --output $dist_dir_stable/Release.gpg \
# --yes $dist_dir_stable/Release && \
# gpg2 --homedir=/home/${{ secrets.REPOSITORY_USER }}/.gnupg \
# --batch \
# --pinentry-mode loopback \
# --verbose \
# --local-user "${{ needs.build-release.outputs.gpg_fingerprint }}" \
# --passphrase-file "/home/${{ secrets.REPOSITORY_USER }}/.gnupg/passphrase" \
# --clearsign \
# --output $dist_dir_stable/InRelease \
# --yes $dist_dir_stable/Release"

upload-to-rpm-repository:
name: Upload to rpm repository
Expand All @@ -336,14 +336,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: packages-release
path: packages

- name: Set up SSH
id: setup_ssh
uses: webfactory/ssh-agent@v0.7.0
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.REPOSITORY_SSH_KEY }}
log-public-key: false
Expand All @@ -358,23 +358,23 @@ jobs:
run: |
package_type="rpm"
packages=$(find packages -type f -name *.$package_type)
for package in $packages; do
package_name=$(basename $package)
package_arch=${package_name%.$package_type}
package_arch=${package_arch##*.}
package_dir=${{ secrets.REPOSITORY_PATH }}/$package_type/release/$package_arch
# Create directory if not exists
ssh -p ${{ secrets.REPOSITORY_HOST_PORT }} ${{ secrets.REPOSITORY_USER }}@${{ secrets.REPOSITORY_HOST }} \
"mkdir -p $package_dir"
# Upload package
echo "Uploading $package_name to ${{ secrets.REPOSITORY_USER }}@${{ secrets.REPOSITORY_HOST }}:$package_dir"
rsync -avz --no-perms --no-owner --no-group -e "ssh -p ${{ secrets.REPOSITORY_HOST_PORT }}" $package \
${{ secrets.REPOSITORY_USER }}@${{ secrets.REPOSITORY_HOST }}:$package_dir/
# Update rpm repository
ssh -p ${{ secrets.REPOSITORY_HOST_PORT }} ${{ secrets.REPOSITORY_USER }}@${{ secrets.REPOSITORY_HOST }} \
"cd $package_dir && \
Expand Down

0 comments on commit 5a97d03

Please sign in to comment.