Skip to content

Go Build and Release #7

Go Build and Release

Go Build and Release #7

Workflow file for this run

name: Go Build and Release
on:
workflow_dispatch:
inputs:
version:
description: 'Release version'
required: true
jobs:
create_release:
name: Create release
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.event.inputs.version }}
release_name: Release ${{ github.event.inputs.version }}
draft: false
prerelease: false
release_ubuntu_assets:
name: Release Ubuntu 24 Assets
needs: create_release
runs-on: ${{ matrix.config.os }}
strategy:
matrix:
config:
- os: ubuntu-24.04
filename: nginx-builder-ubuntu-amd64.tar.gz
- os: ubuntu-24.04-arm
filename: nginx-builder-ubuntu-arm64.tar.gz
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install deps
run: |
sudo apt-get install -y libcurl4-openssl-dev
sudo /usr/bin/ruby3.2 /usr/bin/gem install rack
- name: Build Binary
run: make build
- name: Upload release assets
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_name: ${{ matrix.config.filename }}.tar.gz
asset_path: nginx-builder.tar.gz
asset_content_type: application/gzip
release_rocky_assets:
name: Release Rocky 9 Assets
needs: create_release
runs-on: ${{ matrix.config.os }}
container:
image: rockylinux/rockylinux:9
strategy:
matrix:
config:
- os: ubuntu-24.04
filename: nginx-builder-rocky-amd64.tar.gz
- os: ubuntu-24.04-arm
filename: nginx-builder-rocky-arm64.tar.gz
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install deps
run: |
dnf group install 'Development tools' -y
yum install ruby {libcurl,openssl,zlib,pcre2,ruby}-devel -y
ruby /usr/bin/gem install rack rake json
- name: Build Binary
run: make build
- name: Upload release assets
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_name: ${{ matrix.config.filename }}.tar.gz
asset_path: nginx-builder.tar.gz
asset_content_type: application/gzip