Skip to content

Update version in compose README. #188

Update version in compose README.

Update version in compose README. #188

Workflow file for this run

name: "Build on any push, and release on tag"
permissions:
contents: "write"
on:
push:
branches:
- "*"
tags:
- "*"
jobs:
cargo_version:
name: Get version number from Cargo.toml
runs-on: ubuntu-latest
outputs:
version: ${{ steps.awk.outputs.version }}
steps:
- uses: actions/checkout@v4
- name: Get the version number using awk
id: awk
run: echo "version=$(awk -F\" '/^version/ {print $2}' Cargo.toml)" >> "$GITHUB_OUTPUT"
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Run tests
run: cargo test
fmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Enforce formatting
run: cargo fmt --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- name: Linting
run: cargo clippy -- -D warnings
build:
name: Build and upload binary asset
needs:
- test
- fmt
- clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build the binary
run: make
- name: Archive binary
uses: actions/upload-artifact@v4
with:
name: xtender
path: xtender
package_rpm:
name: Build RPM Package
needs: [cargo_version, build]
runs-on: ubuntu-latest
outputs:
package_name: ${{ steps.build_rpm.outputs.package }}
steps:
- uses: actions/checkout@v4
- name: Download binary artifact
uses: actions/download-artifact@v4
with:
name: xtender
- name: Build RPM Package
id: build_rpm
uses: kentik/[email protected]
with:
name: geneos-xtender
version: ${{ needs.cargo_version.outputs.version }}
arch: x86_64
format: rpm
package: package_rpm.yaml
- name: Archive RPM Package
uses: actions/upload-artifact@v4
with:
name: ${{ steps.build_rpm.outputs.package }}
path: ${{ steps.build_rpm.outputs.package }}
package_deb:
name: Build DEB Package
needs: [cargo_version, build]
runs-on: ubuntu-latest
outputs:
package_name: ${{ steps.build_deb.outputs.package }}
steps:
- uses: actions/checkout@v4
- name: Download binary artifact
uses: actions/download-artifact@v4
with:
name: xtender
- name: Build DEB Package
id: build_deb
uses: kentik/[email protected]
with:
name: geneos-xtender
version: ${{ needs.cargo_version.outputs.version }}
arch: x86_64
format: deb
package: package_deb.yaml
- name: Archive DEB Package
uses: actions/upload-artifact@v4
with:
name: ${{ steps.build_deb.outputs.package }}
path: ${{ steps.build_deb.outputs.package }}
bats_tests:
name: Bats tests
needs:
- package_deb
- package_rpm
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
image:
- "ubuntu:focal"
- "oraclelinux:8"
steps:
- uses: actions/checkout@v4
- name: Download DEB Package artifact
uses: actions/download-artifact@v4
with:
name: ${{ needs.package_deb.outputs.package_name }}
- name: Download RPM Package artifact
uses: actions/download-artifact@v4
with:
name: ${{ needs.package_rpm.outputs.package_name }}
- name: ${{ matrix.image }} - Build bats image
run: |
docker build --platform linux/amd64 -t bats_tests_${{ matrix.image }} -f tests/integration_tests/Dockerfile --build-arg IMAGE=${{ matrix.image }} .
- name: ${{ matrix.image }} - Run bats image
run: docker run bats_tests_${{ matrix.image }}
release:
name: Release
needs:
- cargo_version
- package_deb
- package_rpm
- bats_tests
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download binary artifact
uses: actions/download-artifact@v4
with:
name: xtender
- name: Download DEB Package artifact
uses: actions/download-artifact@v4
with:
name: ${{ needs.package_deb.outputs.package_name }}
- name: Download RPM Package artifact
uses: actions/download-artifact@v4
with:
name: ${{ needs.package_rpm.outputs.package_name }}
- name: Create a tar gzipped file of the binary
run: tar -czvf geneos-xtender-${{ needs.cargo_version.outputs.version }}-static-linux-amd64.tar.gz xtender
- name: Archive release artifacts
uses: actions/upload-artifact@v4
with:
name: release-artifacts
path: |
geneos-xtender-${{ needs.cargo_version.outputs.version }}-static-linux-amd64.tar.gz
${{ needs.package_deb.outputs.package_name }}
${{ needs.package_rpm.outputs.package_name }}
- name: Release
uses: softprops/action-gh-release@v1
with:
files: |
geneos-xtender-${{ needs.cargo_version.outputs.version }}-static-linux-amd64.tar.gz
${{ needs.package_deb.outputs.package_name }}
${{ needs.package_rpm.outputs.package_name }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}