* Set up CI with Azure Pipelines [skip ci] * Remove other CI + remove newline in anchor link tpl * Some more Windows specific changesindex-subcmd
@@ -1,60 +0,0 @@ | |||
dist: trusty | |||
language: rust | |||
services: docker | |||
env: | |||
global: | |||
- CRATE_NAME=zola | |||
matrix: | |||
include: | |||
# Linux | |||
- env: TARGET=x86_64-unknown-linux-gnu | |||
# OSX | |||
- env: TARGET=x86_64-apple-darwin | |||
os: osx | |||
# The earliest stable Rust version that works | |||
- env: TARGET=x86_64-unknown-linux-gnu | |||
rust: 1.34.0 | |||
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: "nksXOY7p8vAWDpItN9Tyx+0CmOPMj/iAgH+iT512URpgJG/i+ziUWDEYpQO4PfZMJUDUa1tnSZ31O4MIe2Sgfj6DHR1zK+LKeLaZxuxxJUSMXSAkbIXcjFlOPKQBPnMZVVcDaHMxz18jiRpElDR2k0PIEtspW2rDsrr+7mzmQn7pan60k77tU3RG3K7fYgMmNjVv64XqMBSCS3fpqiroIz7rVL1HZ3sCoTNnxDM8nXo/8gTjlVowTvUTsVyHRgtDRJdlPuI0yf4oJmvQPX74P2OkQmOVpGxeJ/gSTJ1xWxYfMgyvNaiO9NKF+fUfxvHR/V58CfBHPdJkcnThV5KIPjE5mHZfSTFf5cG6gJtnVhvhQV7vBhIRI/iCt55SPCXse1HWzTY1GxE5oXw2VzUt/kzD2pFf8rtf64JURgGolenYv3aw+ps1MGUwUjl8CF31XBSiASVwpif7kd9P3bafg6pGUytfjgpV/wJJc8OpO8IGwTSNe4r0wtcFb92stxta4NKC3L4F0w/juaK+0+Mjt4SCyh6rRzpHQu9TJKniskp7/URp5KhMFAo66sFpgSYVa23OTkYmjtB8IqlJzmpuDSs/WSAVA8InSgHDaQeBd0UEbNaWU1+avtAGBtb8+rZnbw7ikPF0j2pHImD5ZjHp7+jt/hpcwqrOkBuB5CSeBKs=" | |||
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 | |||
- next | |||
notifications: | |||
email: false |
@@ -1,57 +0,0 @@ | |||
# Based on the "trust" template v0.1.1 | |||
# https://github.com/japaric/trust/tree/v0.1.1 | |||
os: Visual Studio 2017 | |||
environment: | |||
global: | |||
RUST_VERSION: stable | |||
CRATE_NAME: zola | |||
matrix: | |||
- target: x86_64-pc-windows-msvc | |||
RUST_VERSION: 1.34.0 | |||
- target: x86_64-pc-windows-msvc | |||
RUST_VERSION: stable | |||
install: | |||
- call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64 | |||
- 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 | |||
test_script: | |||
# we don't run the "test phase" when doing deploys | |||
- if [%APPVEYOR_REPO_TAG%]==[false] ( | |||
cargo test --all --target %TARGET% | |||
) | |||
before_deploy: | |||
- cargo rustc --target %TARGET% --release --bin zola -- -C lto | |||
- ps: ci\before_deploy.ps1 | |||
deploy: | |||
artifact: /.*\.zip/ | |||
auth_token: | |||
secure: i64eFOHoySQryE3M9pr2JGRukAK3LGltOsUxeFHwilS+3O6/6828A4NUmI0FW4zN | |||
description: '' | |||
on: | |||
RUST_VERSION: stable | |||
appveyor_repo_tag: true | |||
provider: GitHub | |||
cache: | |||
- C:\Users\appveyor\.cargo\registry | |||
- target | |||
branches: | |||
only: | |||
# Release tags | |||
- /^v\d+\.\d+\.\d+.*$/ | |||
- master | |||
- next | |||
# disable automatic builds | |||
build: false |
@@ -0,0 +1,133 @@ | |||
trigger: | |||
branches: | |||
include: ['*'] | |||
tags: | |||
include: ['*'] | |||
stages: | |||
- stage: Tests | |||
jobs: | |||
- job: | |||
strategy: | |||
matrix: | |||
windows-stable: | |||
imageName: 'vs2017-win2016' | |||
rustup_toolchain: stable | |||
mac-stable: | |||
imageName: 'macos-10.14' | |||
rustup_toolchain: stable | |||
linux-stable: | |||
imageName: 'ubuntu-16.04' | |||
rustup_toolchain: stable | |||
linux-1.34: | |||
imageName: 'ubuntu-16.04' | |||
rustup_toolchain: 1.34.0 | |||
pool: | |||
vmImage: $(imageName) | |||
steps: | |||
- script: | | |||
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $RUSTUP_TOOLCHAIN | |||
echo "##vso[task.setvariable variable=PATH;]$PATH:$HOME/.cargo/bin" | |||
displayName: Install rust | |||
condition: ne( variables['Agent.OS'], 'Windows_NT' ) | |||
- script: | | |||
curl -sSf -o rustup-init.exe https://win.rustup.rs | |||
rustup-init.exe -y --default-toolchain %RUSTUP_TOOLCHAIN% | |||
echo "##vso[task.setvariable variable=PATH;]%PATH%;%USERPROFILE%\.cargo\bin" | |||
displayName: Windows install rust | |||
condition: eq( variables['Agent.OS'], 'Windows_NT' ) | |||
- script: cargo build --all | |||
displayName: Cargo build | |||
- script: cargo test --all | |||
displayName: Cargo test | |||
- stage: Release | |||
dependsOn: Tests | |||
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags/') | |||
jobs: | |||
- job: | |||
strategy: | |||
matrix: | |||
windows-stable: | |||
imageName: 'vs2017-win2016' | |||
rustup_toolchain: stable | |||
target: 'x86_64-pc-windows-msvc' | |||
mac-stable: | |||
imageName: 'macos-10.14' | |||
rustup_toolchain: stable | |||
target: 'x86_64-apple-darwin' | |||
linux-stable: | |||
imageName: 'ubuntu-16.04' | |||
rustup_toolchain: stable | |||
target: 'x86_64-unknown-linux-gnu' | |||
pool: | |||
vmImage: $(imageName) | |||
steps: | |||
- script: | | |||
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $RUSTUP_TOOLCHAIN | |||
echo "##vso[task.setvariable variable=PATH;]$PATH:$HOME/.cargo/bin" | |||
displayName: Install rust | |||
condition: ne( variables['Agent.OS'], 'Windows_NT' ) | |||
- script: | | |||
curl -sSf -o rustup-init.exe https://win.rustup.rs | |||
rustup-init.exe -y --default-toolchain %RUSTUP_TOOLCHAIN% | |||
echo "##vso[task.setvariable variable=PATH;]%PATH%;%USERPROFILE%\.cargo\bin" | |||
displayName: Windows install rust | |||
condition: eq( variables['Agent.OS'], 'Windows_NT' ) | |||
- script: | | |||
rustup target add $TARGET | |||
cargo build --release --target $TARGET | |||
condition: ne( variables['Agent.OS'], 'Windows_NT' ) | |||
displayName: Build | |||
- script: | | |||
rustup target add %TARGET% | |||
cargo build --release --target %TARGET% | |||
condition: eq( variables['Agent.OS'], 'Windows_NT' ) | |||
displayName: Build on Windows | |||
- task: CopyFiles@2 | |||
displayName: Copy assets | |||
condition: ne( variables['Agent.OS'], 'Windows_NT' ) | |||
inputs: | |||
sourceFolder: '$(Build.SourcesDirectory)/target/$(TARGET)/release' | |||
contents: zola | |||
targetFolder: '$(Build.BinariesDirectory)/' | |||
- task: CopyFiles@2 | |||
displayName: Copy assets on Windows | |||
condition: eq( variables['Agent.OS'], 'Windows_NT' ) | |||
inputs: | |||
sourceFolder: '$(Build.SourcesDirectory)/target/$(TARGET)/release' | |||
contents: zola.exe | |||
targetFolder: '$(Build.BinariesDirectory)/' | |||
- task: ArchiveFiles@2 | |||
displayName: Gather assets | |||
condition: ne( variables['Agent.OS'], 'Windows_NT' ) | |||
inputs: | |||
rootFolderOrFile: '$(Build.BinariesDirectory)/zola' | |||
archiveType: 'tar' | |||
tarCompression: 'gz' | |||
archiveFile: '$(Build.ArtifactStagingDirectory)/zola-$(Build.SourceBranchName)-$(TARGET).tar.gz' | |||
- task: ArchiveFiles@2 | |||
displayName: Gather assets | |||
condition: eq( variables['Agent.OS'], 'Windows_NT' ) | |||
inputs: | |||
rootFolderOrFile: '$(Build.BinariesDirectory)/zola.exe' | |||
archiveType: 'tar' | |||
tarCompression: 'gz' | |||
archiveFile: '$(Build.ArtifactStagingDirectory)/zola-$(Build.SourceBranchName)-$(TARGET).tar.gz' | |||
- task: GithubRelease@0 | |||
inputs: | |||
gitHubConnection: 'zola' | |||
repositoryName: 'keats/azure-pipelines-test' | |||
action: 'edit' | |||
target: '$(build.sourceVersion)' | |||
tagSource: 'manual' | |||
tag: '$(Build.SourceBranchName)' | |||
assets: '$(Build.ArtifactStagingDirectory)/zola-$(Build.SourceBranchName)-$(TARGET).tar.gz' | |||
title: '$(Build.SourceBranchName)' | |||
assetUploadMode: 'replace' | |||
addChangeLog: true |
@@ -1,22 +0,0 @@ | |||
# 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" | |||
Copy-Item "$SRC_DIR\target\$($Env:TARGET)\release\zola.exe" '.\' | |||
7z a "$ZIP" * | |||
Push-AppveyorArtifact "$ZIP" | |||
Remove-Item *.* -Force | |||
Set-Location .. | |||
Remove-Item $STAGE | |||
Set-Location $SRC_DIR |
@@ -1,31 +0,0 @@ | |||
# 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 | |||
cross rustc --bin zola --target $TARGET --release -- -C lto | |||
cp target/$TARGET/release/zola $stage/ | |||
cd $stage | |||
tar czf $src/$CRATE_NAME-$TRAVIS_TAG-$TARGET.tar.gz * | |||
cd $src | |||
rm -rf $stage | |||
} | |||
main |
@@ -1,31 +0,0 @@ | |||
set -ex | |||
main() { | |||
curl https://sh.rustup.rs -sSf | \ | |||
sh -s -- -y --default-toolchain $TRAVIS_RUST_VERSION | |||
local target= | |||
if [ $TRAVIS_OS_NAME = linux ]; then | |||
target=x86_64-unknown-linux-gnu | |||
sort=sort | |||
else | |||
target=x86_64-apple-darwin | |||
sort=gsort # for `sort --sort-version`, from brew's coreutils. | |||
fi | |||
# 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-9.]+$' \ | |||
| $sort --version-sort \ | |||
| tail -n1) | |||
echo cross version: $tag | |||
curl -LSfs https://japaric.github.io/trust/install.sh | \ | |||
sh -s -- \ | |||
--force \ | |||
--git japaric/cross \ | |||
--tag $tag \ | |||
--target $target | |||
} | |||
main |
@@ -1,17 +0,0 @@ | |||
# This script takes care of testing your crate | |||
set -ex | |||
# TODO This is the "test phase", tweak it as you see fit | |||
main() { | |||
if [ ! -z $DISABLE_TESTS ]; then | |||
return | |||
fi | |||
cross test --all --target $TARGET | |||
} | |||
# we don't run the "test phase" when doing deploys | |||
if [ -z $TRAVIS_TAG ]; then | |||
main | |||
fi |
@@ -409,7 +409,7 @@ fn can_insert_anchor_left() { | |||
let res = render_content("# Hello", &context).unwrap(); | |||
assert_eq!( | |||
res.body, | |||
"<h1 id=\"hello\"><a class=\"zola-anchor\" href=\"#hello\" aria-label=\"Anchor link for: hello\">π</a>\nHello</h1>\n" | |||
"<h1 id=\"hello\"><a class=\"zola-anchor\" href=\"#hello\" aria-label=\"Anchor link for: hello\">π</a>Hello</h1>\n" | |||
); | |||
} | |||
@@ -421,7 +421,7 @@ fn can_insert_anchor_right() { | |||
let res = render_content("# Hello", &context).unwrap(); | |||
assert_eq!( | |||
res.body, | |||
"<h1 id=\"hello\">Hello<a class=\"zola-anchor\" href=\"#hello\" aria-label=\"Anchor link for: hello\">π</a>\n</h1>\n" | |||
"<h1 id=\"hello\">Hello<a class=\"zola-anchor\" href=\"#hello\" aria-label=\"Anchor link for: hello\">π</a></h1>\n" | |||
); | |||
} | |||
@@ -433,8 +433,8 @@ fn can_insert_anchor_for_multi_header() { | |||
let res = render_content("# Hello\n# World", &context).unwrap(); | |||
assert_eq!( | |||
res.body, | |||
"<h1 id=\"hello\">Hello<a class=\"zola-anchor\" href=\"#hello\" aria-label=\"Anchor link for: hello\">π</a>\n</h1>\n\ | |||
<h1 id=\"world\">World<a class=\"zola-anchor\" href=\"#world\" aria-label=\"Anchor link for: world\">π</a>\n</h1>\n" | |||
"<h1 id=\"hello\">Hello<a class=\"zola-anchor\" href=\"#hello\" aria-label=\"Anchor link for: hello\">π</a></h1>\n\ | |||
<h1 id=\"world\">World<a class=\"zola-anchor\" href=\"#world\" aria-label=\"Anchor link for: world\">π</a></h1>\n" | |||
); | |||
} | |||
@@ -447,7 +447,7 @@ fn can_insert_anchor_with_exclamation_mark() { | |||
let res = render_content("# Hello!", &context).unwrap(); | |||
assert_eq!( | |||
res.body, | |||
"<h1 id=\"hello\"><a class=\"zola-anchor\" href=\"#hello\" aria-label=\"Anchor link for: hello\">π</a>\nHello!</h1>\n" | |||
"<h1 id=\"hello\"><a class=\"zola-anchor\" href=\"#hello\" aria-label=\"Anchor link for: hello\">π</a>Hello!</h1>\n" | |||
); | |||
} | |||
@@ -460,7 +460,7 @@ fn can_insert_anchor_with_link() { | |||
let res = render_content("## [Rust](https://rust-lang.org)", &context).unwrap(); | |||
assert_eq!( | |||
res.body, | |||
"<h2 id=\"rust\"><a class=\"zola-anchor\" href=\"#rust\" aria-label=\"Anchor link for: rust\">π</a>\n<a href=\"https://rust-lang.org\">Rust</a></h2>\n" | |||
"<h2 id=\"rust\"><a class=\"zola-anchor\" href=\"#rust\" aria-label=\"Anchor link for: rust\">π</a><a href=\"https://rust-lang.org\">Rust</a></h2>\n" | |||
); | |||
} | |||
@@ -472,7 +472,7 @@ fn can_insert_anchor_with_other_special_chars() { | |||
let res = render_content("# Hello*_()", &context).unwrap(); | |||
assert_eq!( | |||
res.body, | |||
"<h1 id=\"hello\"><a class=\"zola-anchor\" href=\"#hello\" aria-label=\"Anchor link for: hello\">π</a>\nHello*_()</h1>\n" | |||
"<h1 id=\"hello\"><a class=\"zola-anchor\" href=\"#hello\" aria-label=\"Anchor link for: hello\">π</a>Hello*_()</h1>\n" | |||
); | |||
} | |||
@@ -1 +1 @@ | |||
<a class="zola-anchor" href="#{{ id }}" aria-label="Anchor link for: {{ id }}">π</a> | |||
<a class="zola-anchor" href="#{{ id }}" aria-label="Anchor link for: {{ id }}">π</a> |
@@ -445,7 +445,11 @@ mod tests { | |||
args.insert("path".to_string(), to_value("test.css").unwrap()); | |||
let result = static_fn.call(&args.clone()).unwrap(); | |||
assert_eq!(result, ".hello {}\n",); | |||
if cfg!(windows) { | |||
assert_eq!(result, ".hello {}\r\n",); | |||
} else { | |||
assert_eq!(result, ".hello {}\n",); | |||
}; | |||
} | |||
#[test] | |||
@@ -456,7 +460,11 @@ mod tests { | |||
args.insert("format".to_string(), to_value("plain").unwrap()); | |||
let result = static_fn.call(&args.clone()).unwrap(); | |||
assert_eq!(result, "Number,Title\n1,Gutenberg\n2,Printing",); | |||
if cfg!(windows) { | |||
assert_eq!(result, "Number,Title\r\n1,Gutenberg\r\n2,Printing",); | |||
} else { | |||
assert_eq!(result, "Number,Title\n1,Gutenberg\n2,Printing",); | |||
}; | |||
} | |||
#[test] | |||
@@ -467,7 +475,11 @@ mod tests { | |||
args.insert("format".to_string(), to_value("plain").unwrap()); | |||
let result = static_fn.call(&args.clone()).unwrap(); | |||
assert_eq!(result, ".hello {}\n",); | |||
if cfg!(windows) { | |||
assert_eq!(result, ".hello {}\r\n",); | |||
} else { | |||
assert_eq!(result, ".hello {}\n",); | |||
}; | |||
} | |||
#[test] | |||