Skip to content

Commit d48fba7

Browse files
authored
Revert completions with build.rs, generate in CI instead (#122)
1 parent 1e649ab commit d48fba7

File tree

9 files changed

+737
-767
lines changed

9 files changed

+737
-767
lines changed
Lines changed: 42 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,68 @@
11
name: Build assets for a Release
22

33
on:
4-
push:
5-
tags:
6-
- "v[0-9]+.[0-9]+.[0-9]+"
4+
release:
5+
types: [published]
76

87
jobs:
9-
build-artifact:
8+
build-release:
109
runs-on: ${{ matrix.os }}
1110
strategy:
1211
matrix:
1312
os: [ubuntu-latest, windows-latest]
1413
include:
1514
- os: ubuntu-latest
15+
exe_suffix: ""
1616
target: x86_64-unknown-linux-musl
1717
- os: windows-latest
18+
exe_suffix: ".exe"
1819
target: x86_64-pc-windows-msvc
1920
steps:
2021
- uses: actions/checkout@v3
21-
22-
- uses: actions-rs/toolchain@v1
23-
with:
24-
profile: minimal
25-
toolchain: stable
26-
target: ${{ matrix.target }}
27-
override: true
28-
22+
- name: Update rust
23+
run: rustup update
2924
- name: Cache dependencies
3025
uses: Swatinem/rust-cache@v2
31-
3226
- name: Build
33-
run: cargo build --release --locked --verbose --target ${{ matrix.target }}
34-
35-
- name: Pack completions
36-
if: matrix.os == 'ubuntu-latest' # Runs only once
37-
run: zip -r completions.zip completions
38-
39-
- name: Upload asset on Linux
40-
uses: softprops/action-gh-release@v1
27+
run: "cargo build --release --locked --verbose --target ${{ matrix.target }}"
28+
- name: Upload asset
29+
uses: actions/[email protected]
4130
env:
4231
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
43-
if: startsWith(github.ref, 'refs/tags/') && matrix.os == 'ubuntu-latest'
4432
with:
45-
files: |
46-
target/${{ matrix.target }}/release/dotter
47-
completions.zip
33+
asset_path: target/${{ matrix.target }}/release/dotter${{ matrix.exe_suffix }}
34+
asset_name: dotter${{ matrix.exe_suffix }}
35+
asset_content_type: application/octet-stream
36+
upload_url: ${{ github.event.release.upload_url }}
37+
build-completions:
38+
runs-on: ubuntu-latest
39+
steps:
40+
- uses: actions/checkout@v3
41+
- name: Update rust
42+
run: rustup update
43+
- name: Cache dependencies
44+
uses: Swatinem/rust-cache@v2
45+
- name: Generate Completions
46+
run: |
47+
cargo build
48+
49+
SHELLS="bash elvish fish powershell zsh"
4850
49-
- name: Upload asset on Windows
51+
mkdir completions
52+
for shell in $SHELLS; do
53+
cargo run -- gen-completions --shell $shell --to completions
54+
done
55+
56+
zip -r completions.zip completions
57+
- name: Upload Assets
5058
uses: softprops/action-gh-release@v1
51-
env:
52-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
53-
if: startsWith(github.ref, 'refs/tags/') && matrix.os == 'windows-latest'
5459
with:
55-
files: target/${{ matrix.target }}/release/dotter.exe
56-
60+
files: completions.zip
5761
cargo-publish:
58-
runs-on: ubuntu-latest
59-
steps:
60-
- uses: actions/checkout@v3
61-
- run: cargo login ${CRATES_IO_TOKEN}
62-
env:
63-
CRATES_IO_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
64-
- run: cargo publish
62+
runs-on: ubuntu-latest
63+
steps:
64+
- uses: actions/checkout@v1
65+
- run: cargo login ${CRATES_IO_TOKEN}
66+
env:
67+
CRATES_IO_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
68+
- run: cargo publish
Lines changed: 36 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
on: [push, pull_request]
1+
on:
2+
push:
3+
branches: [ $default-branch ]
4+
pull_request:
25

36
name: Continuous integration
47

@@ -19,82 +22,64 @@ jobs:
1922
fail-fast: false
2023
steps:
2124
- uses: actions/checkout@v2
22-
- uses: actions-rs/toolchain@v1
23-
with:
24-
profile: minimal
25-
toolchain: stable
26-
target: ${{ matrix.target }}
27-
override: true
25+
- name: Update Rust
26+
run: |
27+
rustup update
28+
rustup target add ${{ matrix.target }}
2829
- name: Cache dependencies
29-
uses: Swatinem/rust-cache@v1
30-
- uses: actions-rs/cargo@v1
31-
with:
32-
command: check
33-
args: --verbose --locked --target ${{ matrix.target }}
30+
uses: Swatinem/rust-cache@v2
31+
- run: cargo check --verbose --locked --target ${{ matrix.target }}
3432
check-readme:
3533
name: Check README
3634
runs-on: ubuntu-latest
3735
steps:
3836
- uses: actions/checkout@v2
39-
- uses: actions-rs/toolchain@v1
40-
with:
41-
profile: minimal
42-
toolchain: stable
43-
override: true
37+
- name: Update Rust
38+
run: rustup update
4439
- name: Cache dependencies
45-
uses: Swatinem/rust-cache@v1
46-
- uses: actions-rs/cargo@v1
47-
with:
48-
command: build
49-
args: --verbose --locked
40+
uses: Swatinem/rust-cache@v2
41+
- run: cargo build --verbose --locked
5042
- name: Check README help message
5143
run: "[[ ! $(comm -13 <(sort README.md) <(cargo run --locked -- --help | sort)) ]] || cargo run --locked -- --help | diff - README.md"
44+
check-publish:
45+
name: Check cargo publish
46+
runs-on: ubuntu-latest
47+
steps:
48+
- uses: actions/checkout@v2
49+
- name: Update Rust
50+
run: rustup update
51+
- name: Cache dependencies
52+
uses: Swatinem/rust-cache@v2
53+
- run: cargo publish --dry-run --verbose --locked
5254
test:
5355
name: Test Suite
5456
runs-on: ubuntu-latest
5557
steps:
5658
- uses: actions/checkout@v2
57-
- uses: actions-rs/toolchain@v1
58-
with:
59-
profile: minimal
60-
toolchain: stable
61-
override: true
59+
- name: Update Rust
60+
run: rustup update
6261
- name: Cache dependencies
63-
uses: Swatinem/rust-cache@v1
64-
- uses: actions-rs/cargo@v1
65-
with:
66-
command: test
62+
uses: Swatinem/rust-cache@v2
63+
- run: cargo test
6764
fmt:
6865
name: Rustfmt
6966
runs-on: ubuntu-latest
7067
steps:
7168
- uses: actions/checkout@v2
72-
- uses: actions-rs/toolchain@v1
73-
with:
74-
profile: minimal
75-
toolchain: stable
76-
override: true
69+
- name: Update Rust
70+
run: rustup update
7771
- run: rustup component add rustfmt
7872
- name: Cache dependencies
79-
uses: Swatinem/rust-cache@v1
80-
- uses: actions-rs/cargo@v1
81-
with:
82-
command: fmt
83-
args: --all -- --check
73+
uses: Swatinem/rust-cache@v2
74+
- run: cargo fmt --all -- --check
8475
clippy:
8576
name: Clippy
8677
runs-on: ubuntu-latest
8778
steps:
8879
- uses: actions/checkout@v2
89-
- uses: actions-rs/toolchain@v1
90-
with:
91-
profile: minimal
92-
toolchain: stable
93-
override: true
80+
- name: Update Rust
81+
run: rustup update
9482
- run: rustup component add clippy
9583
- name: Cache dependencies
96-
uses: Swatinem/rust-cache@v1
97-
- uses: actions-rs/cargo@v1
98-
with:
99-
command: clippy
100-
args: -- -D warnings
84+
uses: Swatinem/rust-cache@v2
85+
- run: cargo clippy -- -D warnings

.gitignore

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1 @@
1-
# Generated by Cargo
2-
# will have compiled files and executables
3-
debug/
41
target/
5-
6-
# These are backup files generated by rustfmt
7-
**/*.rs.bk
8-
9-
# MSVC Windows builds of rustc generate these, which store debugging information
10-
*.pdb
11-
12-
# Generated by build.rs
13-
completions/

0 commit comments

Comments
 (0)