Skip to content

Commit

Permalink
Experimental workflow (#367)
Browse files Browse the repository at this point in the history
* Add a second workflow to experiment with

* remove on condition

* change name
  • Loading branch information
martintc committed Dec 4, 2023
1 parent 6aac230 commit bef7372
Showing 1 changed file with 204 additions and 0 deletions.
204 changes: 204 additions & 0 deletions .github/workflows/main2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
name: release-experimental

# on:
# workflow_dispatch: {}
# push:
# branches:
# - "main"

env:
MIN_SUPPORTED_RUST_VERSION: "1.70.0"
CICD_INTERMEDIATES_DIR: "_cicd-intermediates"
CARGO_TERM_COLOR: always
#Fix these up soon
#RUSTFLAGS: "-D warnings"

jobs:
lint-test-release:
runs-on: ubuntu-22.04
steps:
- name: Clone Repository
uses: actions/checkout@v4

- name: Install Rust Toolchain (v${{ env.MIN_SUPPORTED_RUST_VERSION }})
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.MIN_SUPPORTED_RUST_VERSION }}
default: true
profile: minimal
components: clippy

- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all-features --all-targets

- name: Run Tests
uses: actions-rs/cargo@v1
with:
command: test

- name: Run Tarpaulin
uses: actions-rs/[email protected]
with:
version: "0.22.0"
args: "--workspace -- --test-threads 1"

- name: Upload to codecov.io
uses: codecov/codecov-action@v3

- name: Check for Release
id: is-release
shell: bash
run: |
unset IS_RELEASE ; if [[ $GITHUB_REF =~ ^refs/tags/v[0-9].* ]]; then IS_RELEASE='true' ; fi
echo ::set-output name=IS_RELEASE::${IS_RELEASE}
- name: Cargo Publish "comtrya-lib"
if: steps.is-release.outputs.IS_RELEASE
run: cargo publish -p comtrya-lib --token ${CRATES_TOKEN}
env:
CRATES_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}

- name: Cargo Publish "comtrya"
if: steps.is-release.outputs.IS_RELEASE
run: cargo publish -p comtrya --token ${CRATES_TOKEN}
env:
CRATES_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}

build:
name: Build-${{ matrix.platform.target }}
runs-on: ${{ matrix.platform.os }}
strategy:
fail-fast: false
matrix:
platform:
- os_name: Linux-x86_64-gnu
os: ubuntu-22.04
target: x86_64-unknown-linux-gnu
bin: comtrya
name: comtry-x86_64-unknown-linux-gnu
cross: false
cargo_command: cargo
skip_tests: false
- os_name: Linux-aarch64-gnu
os: ubuntu-22.04
target: aarch64-unknown-linux-gnu
bin: comtrya
name: comtry-aarch64-unknown-linux-gnu
cross: false
cargo_command: ./cross
skip_tests: true
- os_name: Windows-x86_64
os: windows-2022
target: x86_64-pc-windows-msvc
bin: comtrya
name: comtry-x86_64-pc-winfows-msvc
cross: false
cargo_command: cargo
skip_tests: false
- os_name: macOS-x86_64
os: macos-12
target: x86_64-apple-darwin
bin: comtrya
name: comtry-x86_64-apple-darwin
cross: false
cargo_command: cargo
skip_tests: false
- os_name: macOS-aarch64
os: macos-12
target: aarch64-apple-darwin
bin: comtrya
name: comtry-aarch64-apple-darwin
cross: true
cargo_command: ./cross
skip_tests: true
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Build binary
uses: houseabsolute/actions-rust-cross@v0
with:
command: "build"
target: ${{ matrix.platform.target }}
toolchain: stable
args: "--release"

- name: Rename Binary
if: matrix.job.target != 'x86_64-pc-windows-msvc'
shell: bash
run: |
mv target/release/comtrya comtrya-${{ matrix.job.target }}
- name: Rename Binary.exe
if: matrix.job.target == 'x86_64-pc-windows-msvc'
shell: bash
run: |
mv target/release/comtrya.exe comtrya-${{ matrix.job.target }}.exe
- name: Upload Artifact
if: matrix.job.target != 'x86_64-pc-windows-msvc'
uses: softprops/action-gh-release@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
draft: true
prerelease: false
name: Unreleased
generate_release_notes: false
fail_on_unmatched_files: true
files: |
comtrya-${{ matrix.job.target }}
- name: Upload Artifact.exe
if: matrix.job.target == 'x86_64-pc-windows-msvc'
uses: softprops/action-gh-release@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
draft: true
prerelease: false
name: Unreleased
generate_release_notes: false
fail_on_unmatched_files: true
files: |
comtrya-${{ matrix.job.target }}.exe
build-musl:
runs-on: ubuntu-latest
container: clux/muslrust:stable
steps:
- name: Clone Repository
uses: actions/checkout@v4

- name: Link to muscl Toolchain
run: |
ln -s /root/.cargo $HOME/.cargo
ln -s /root/.rustup $HOME/.rustup
- name: Handle Rust Dependencies Caching
uses: Swatinem/rust-cache@v2
with:
key: v1-linux-musl

- name: Build Release Binary
uses: actions-rs/cargo@v1
with:
command: build
args: --release

- name: Rename Binary
shell: bash
run: |
mv target/x86_64-unknown-linux-musl/release/comtrya target/x86_64-unknown-linux-musl/release/comtrya-x86_64-unknown-linux-musl
- name: Upload release archive
uses: softprops/action-gh-release@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
draft: true
prerelease: false
name: Unreleased
generate_release_notes: false
fail_on_unmatched_files: true
files: |
target/x86_64-unknown-linux-musl/release/comtrya-x86_64-unknown-linux-musl

0 comments on commit bef7372

Please sign in to comment.