Skip to content

Commit

Permalink
Add github actions for release
Browse files Browse the repository at this point in the history
  • Loading branch information
theelderbeever committed Jan 30, 2024
1 parent 3807133 commit 07dde0e
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 0 deletions.
Empty file added .github/CODEOWNERS
Empty file.
101 changes: 101 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: Release

permissions:
contents: write
packages: write

on:
push:
tags:
- v[0-9]+.*

jobs:
fmt-lint-test:
name: Format, Lint, and Test
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Set up cargo cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-check-${{ hashFiles('Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-check-

- name: Format
working-directory: .
run: cargo fmt --check

- name: Test
working-directory: .
run: cargo test --all

- name: Linting
working-directory: .
run: cargo clippy --version

- name: Linting
working-directory: .
run: cargo clippy -- -D warnings

create-release:
name: Create Release ${{ github.ref_name }}
needs: fmt-lint-test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/create-gh-release-action@v1
with:
# (required) GitHub token for creating GitHub Releases.
token: ${{ secrets.GITHUB_TOKEN }}

upload-assets:
name: Build and Push Binary/Image
needs: create-release
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
# - windows-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Set up cargo cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-assets-${{ hashFiles('Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-assets-

- uses: taiki-e/upload-rust-binary-action@v1
with:
# (required) Comma-separated list of binary names (non-extension portion of filename) to build and upload.
# Note that glob pattern is not supported yet.
bin: kubectl-guardrails
# (optional) On which platform to distribute the `.tar.gz` file.
# [default value: unix]
# [possible values: all, unix, windows, none]
tar: unix
# (optional) On which platform to distribute the `.zip` file.
# [default value: windows]
# [possible values: all, unix, windows, none]
zip: windows
# (required) GitHub token for uploading assets to GitHub Releases.
token: ${{ secrets.GITHUB_TOKEN }}

0 comments on commit 07dde0e

Please sign in to comment.