Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove GH workflows #29

Merged
merged 1 commit into from
Dec 23, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 0 additions & 37 deletions .github/workflows/ci.yml

This file was deleted.

78 changes: 0 additions & 78 deletions .github/workflows/release.yml

This file was deleted.

54 changes: 54 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
dist: trusty
language: rust
services: docker

env:
global:
- CRATE_NAME=kickstart

matrix:
include:
# Linux
- env: TARGET=x86_64-unknown-linux-gnu
# OSX
- env: TARGET=x86_64-apple-darwin
os: osx

before_install: set -e

install:
- sh ci/install.sh
- source ~/.cargo/env || true

script:
- bash ci/script.sh

after_script: set +e

before_deploy:
- sh ci/before_deploy.sh

deploy:
api_key:
secure: RZrpS9AjWddlQskoRQZTTVsTHUdCYOcDG7+iztqiXN9bf6V1JtIGRE4wSvVyIJP9T6Kkf1uiPyIkAofX2LSzzf/EuuW3CCZ6sjS+3zSKVhLr1HVV3xWmx3nyJvMtcJQ8A/ddOTELTiCuAxDT2aLLzhsp1QvwsMwn38lypcrpcWWUH02tYX36R6JB3qbSki2O9ZNZPzrAStysWMICrVQ88o78Z9YbSvoPI7HHGCwDfyapPObhvUsraI2oKODEmKY12Asrnt0tQHzHXPnf4nRO2cX1u6rDKnn93qVENhr7/VKX+f3nNaFQOxc17TGXclGI+WHW93gPw47gZWWkRjkNDYKNNbhxhbLCKBDkdfaJWLPJL9rRQx0EAchzSHiMFBkhRBz9xXt+y/SXoh4FDPFH1o5TFQt5u9OCEIfCNpuICPC75GYjjhFHg2RzyLddMOgTjSMimv6wd3x8N6T0fHA+l5xltpmwdCi8AYTzCrZJzT9yuzj3pKC8GzsoIrpCBQ05fXJ1i7FVXDz7k6GxortcuxZidyfUEy1Msd4hRujuE5kM1UlD0n1ApFchnhQz7A97fexT9efeth7VbfZ76zUz9rppxpN+ceuas8V9HE5uvAiHJKZQppRBU8esyjYRfLMUv4OTDBId3Lzw7x7s4rw0avaTK+lbr0KvE2efXjNHUVI=
file_glob: true
file: $CRATE_NAME-$TRAVIS_TAG-$TARGET.*
on:
condition: $TRAVIS_RUST_VERSION = stable
tags: true
provider: releases
skip_cleanup: true

cache: cargo
before_cache:
# Travis can't cache files that are not readable by "others"
- chmod -R a+r $HOME/.cargo

branches:
only:
# release tags
- /^v\d+\.\d+\.\d+.*$/
- master

notifications:
email: false
63 changes: 63 additions & 0 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Based on the "trust" template v0.1.2
# https://github.com/japaric/trust/tree/v0.1.2

environment:
global:
# TODO This is the Rust channel that build jobs will use by default but can be
# overridden on a case by case basis down below
RUST_VERSION: stable

# TODO Update this to match the name of your project.
CRATE_NAME: kickstart

# TODO These are all the build jobs. Adjust as necessary. Comment out what you
# don't need
matrix:
- TARGET: x86_64-pc-windows-msvc

install:
- ps: >-
If ($Env:TARGET -eq 'x86_64-pc-windows-gnu') {
$Env:PATH += ';C:\msys64\mingw64\bin'
} ElseIf ($Env:TARGET -eq 'i686-pc-windows-gnu') {
$Env:PATH += ';C:\msys64\mingw32\bin'
}
- curl -sSf -o rustup-init.exe https://win.rustup.rs/
- rustup-init.exe -y --default-host %TARGET% --default-toolchain %RUST_VERSION%
- set PATH=%PATH%;C:\Users\appveyor\.cargo\bin
- rustc -Vv
- cargo -V

# TODO This is the "test phase", tweak it as you see fit
test_script:
# we don't run the "test phase" when doing deploys
- if [%APPVEYOR_REPO_TAG%]==[false] (
cargo test --target %TARGET%
)

before_deploy:
# TODO Update this to build the artifacts that matter to you
- cargo rustc --target %TARGET% --release --bin kickstart -- -C lto
- ps: ci\before_deploy.ps1

deploy:
artifact: /.*\.zip/
auth_token:
secure: KATuxn8l+8baFHqtkNWDRUdCM9iewocCf84f5WVyOiLf72FT5xEMUSZFZ/ZuiJdD
description: ''
on:
RUST_VERSION: stable
appveyor_repo_tag: true
provider: GitHub

cache:
- C:\Users\appveyor\.cargo\registry

branches:
only:
# Release tags
- /^v\d+\.\d+\.\d+.*$/
- master

# Building is done in the test phase, so we disable Appveyor's build phase.
build: false
23 changes: 23 additions & 0 deletions ci/before_deploy.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# This script takes care of packaging the build artifacts that will go in the
# release zipfile

$SRC_DIR = $PWD.Path
$STAGE = [System.Guid]::NewGuid().ToString()

Set-Location $ENV:Temp
New-Item -Type Directory -Name $STAGE
Set-Location $STAGE

$ZIP = "$SRC_DIR\$($Env:CRATE_NAME)-$($Env:APPVEYOR_REPO_TAG_NAME)-$($Env:TARGET).zip"

# TODO Update this to package the right artifacts
Copy-Item "$SRC_DIR\target\$($Env:TARGET)\release\kickstart.exe" '.\'

7z a "$ZIP" *

Push-AppveyorArtifact "$ZIP"

Remove-Item *.* -Force
Set-Location ..
Remove-Item $STAGE
Set-Location $SRC_DIR
33 changes: 33 additions & 0 deletions ci/before_deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# This script takes care of building your crate and packaging it for release

set -ex

main() {
local src=$(pwd) \
stage=

case $TRAVIS_OS_NAME in
linux)
stage=$(mktemp -d)
;;
osx)
stage=$(mktemp -d -t tmp)
;;
esac

test -f Cargo.lock || cargo generate-lockfile

# TODO Update this to build the artifacts that matter to you
cross rustc --bin kickstart --target $TARGET --release -- -C lto

# TODO Update this to package the right artifacts
cp target/$TARGET/release/kickstart $stage/

cd $stage
tar czf $src/$CRATE_NAME-$TRAVIS_TAG-$TARGET.tar.gz *
cd $src

rm -rf $stage
}

main
47 changes: 47 additions & 0 deletions ci/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
set -ex

main() {
local target=
if [ $TRAVIS_OS_NAME = linux ]; then
target=x86_64-unknown-linux-musl
sort=sort
else
target=x86_64-apple-darwin
sort=gsort # for `sort --sort-version`, from brew's coreutils.
fi

# Builds for iOS are done on OSX, but require the specific target to be
# installed.
case $TARGET in
aarch64-apple-ios)
rustup target install aarch64-apple-ios
;;
armv7-apple-ios)
rustup target install armv7-apple-ios
;;
armv7s-apple-ios)
rustup target install armv7s-apple-ios
;;
i386-apple-ios)
rustup target install i386-apple-ios
;;
x86_64-apple-ios)
rustup target install x86_64-apple-ios
;;
esac

# This fetches latest stable release
local tag=$(git ls-remote --tags --refs --exit-code https://github.com/japaric/cross \
| cut -d/ -f3 \
| grep -E '^v[0.1.0-9.]+$' \
| $sort --version-sort \
| tail -n1)
curl -LSfs https://japaric.github.io/trust/install.sh | \
sh -s -- \
--force \
--git japaric/cross \
--tag $tag \
--target $target
}

main
21 changes: 21 additions & 0 deletions ci/script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# This script takes care of testing your crate

set -ex

# TODO This is the "test phase", tweak it as you see fit
main() {
cross build --target $TARGET
cross build --target $TARGET --release

if [ ! -z $DISABLE_TESTS ]; then
return
fi

cross test --all --target $TARGET
cross test --all --target $TARGET --release
}

# we don't run the "test phase" when doing deploys
if [ -z $TRAVIS_TAG ]; then
main
fi
2 changes: 2 additions & 0 deletions src/generation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,7 @@ mod tests {
let dir = tempdir().unwrap();
let tpl = Template::from_input("https://github.com/Keats/rust-cli-template", None).unwrap();
let res = tpl.generate(&dir.path().to_path_buf(), true);
println!("{:?}", res);
assert!(res.is_ok());
assert!(!dir.path().join("My-CLI").join("template.toml").exists());
assert!(dir.path().join("My-CLI").join(".travis.yml").exists());
Expand All @@ -233,6 +234,7 @@ mod tests {
Template::from_input("https://github.com/Keats/kickstart", Some("examples/complex"))
.unwrap();
let res = tpl.generate(&dir.path().to_path_buf(), true);
println!("{:?}", res);
assert!(res.is_ok());
assert!(!dir.path().join("some-project").join("template.toml").exists());
assert!(dir.path().join("some-project").join("logo.png").exists());
Expand Down