CI Improvements #142

Merged
lucas merged 5 commits from issue/color-eyre into master 2023-11-23 15:30:31 +01:00
9 changed files with 61 additions and 33 deletions

View file

@ -5,6 +5,7 @@ RUN set -eux; \
apt-get install --no-install-recommends -y \ apt-get install --no-install-recommends -y \
build-essential \ build-essential \
curl \ curl \
git \
gpg \ gpg \
jq \ jq \
libatk1.0-dev \ libatk1.0-dev \

View file

@ -40,4 +40,4 @@ jobs:
pr: ((.:pr)) pr: ((.:pr))
gitea_api_key: ((gitea_api_key)) gitea_api_key: ((gitea_api_key))
instance_vars: instance_vars:
n: ((.:pr.number)) number: ((.:pr.number))

View file

@ -37,7 +37,6 @@ resources:
url: http://forgejo:3000 url: http://forgejo:3000
owner: bitsquid_dt owner: bitsquid_dt
repo: dtmt repo: dtmt
sha: ((pr.head.sha))
context: lint/clippy context: lint/clippy
description: Checking for common mistakes and opportunities for code improvement description: Checking for common mistakes and opportunities for code improvement
@ -48,7 +47,6 @@ resources:
url: http://forgejo:3000 url: http://forgejo:3000
owner: bitsquid_dt owner: bitsquid_dt
repo: dtmt repo: dtmt
sha: ((pr.head.sha))
context: build/msvc context: build/msvc
description: "Build for the target platform: msvc" description: "Build for the target platform: msvc"
@ -59,7 +57,6 @@ resources:
url: http://forgejo:3000 url: http://forgejo:3000
owner: bitsquid_dt owner: bitsquid_dt
repo: dtmt repo: dtmt
sha: ((pr.head.sha))
context: build/linux context: build/linux
description: "Build for the target platform: linux" description: "Build for the target platform: linux"
@ -72,23 +69,29 @@ jobs:
no_get: true no_get: true
params: params:
state: success state: success
sha: ((.:git_sha))
on_failure: on_failure:
put: state-success put: state-failure
resource: pr-status-lint-clippy resource: pr-status-lint-clippy
no_get: true no_get: true
params: params:
state: failure state: failure
sha: ((.:git_sha))
plan: plan:
- get: repo
trigger: true
- load_var: git_sha
file: repo/.git/ref
- put: state-pending - put: state-pending
resource: pr-status-lint-clippy resource: pr-status-lint-clippy
no_get: true no_get: true
params: params:
state: pending state: pending
sha: ((.:git_sha))
- get: repo
trigger: true
- task: check - task: check
file: repo/.ci/tasks/clippy.yml file: repo/.ci/tasks/clippy.yml
@ -103,23 +106,29 @@ jobs:
no_get: true no_get: true
params: params:
state: success state: success
sha: ((.:git_sha))
on_failure: on_failure:
put: state-success put: state-failure
resource: pr-status-build-msvc resource: pr-status-build-msvc
no_get: true no_get: true
params: params:
state: failure state: failure
sha: ((.:git_sha))
plan: plan:
- get: repo
trigger: true
- load_var: git_sha
file: repo/.git/ref
- put: state-pending - put: state-pending
resource: pr-status-build-msvc resource: pr-status-build-msvc
no_get: true no_get: true
params: params:
state: pending state: pending
sha: ((.:git_sha))
- get: repo
trigger: true
- task: build - task: build
file: repo/.ci/tasks/build.yml file: repo/.ci/tasks/build.yml
@ -154,23 +163,29 @@ jobs:
no_get: true no_get: true
params: params:
state: success state: success
sha: ((.:git_sha))
on_failure: on_failure:
put: state-success put: state-failure
resource: pr-status-build-linux resource: pr-status-build-linux
no_get: true no_get: true
params: params:
state: failure state: failure
sha: ((.:git_sha))
plan: plan:
- get: repo
trigger: true
- load_var: git_sha
file: repo/.git/ref
- put: state-pending - put: state-pending
resource: pr-status-build-linux resource: pr-status-build-linux
no_get: true no_get: true
params: params:
state: pending state: pending
sha: ((.:git_sha))
- get: repo
trigger: true
- task: build - task: build
file: repo/.ci/tasks/build.yml file: repo/.ci/tasks/build.yml

View file

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
set -eu set -eu
@ -12,39 +12,42 @@ title() {
printf "\033[1m%s\033[0m\n" "$1" printf "\033[1m%s\033[0m\n" "$1"
} }
cd "repo"
if [ -n "${PR:-}" ]; then if [ -n "${PR:-}" ]; then
title "PR: $(echo "$PR" | jq '.number') - $(echo "$PR" | jq '.title')" title "PR: $(echo "$PR" | jq '.number') - $(echo "$PR" | jq '.title')"
ref="pr-$(echo "$PR" | jq '.number')-$(git rev-parse --short HEAD 2>/dev/null || echo 'manual')" ref="pr-$(echo "$PR" | jq '.number')-$(git rev-parse --short "$(cat .git/ref || echo "HEAD")" 2>/dev/null || echo 'manual')"
else else
ref=$(git describe --tags) ref=$(git describe --tags)
fi fi
title "Version is '$ref'" title "Version: '$ref'"
echo "$ref" > "$OUTPUT/version" echo "$ref" > "$OUTPUT/version"
cd "repo"
case "$TARGET" in case "$TARGET" in
msvc) msvc)
cp /src/*.lib ./lib/oodle/ cp /src/*.lib ./lib/oodle/
title "Build project for target $TARGET" title "Building project for target $TARGET"
cargo build --color always --locked --release --target x86_64-pc-windows-msvc -Zbuild-std cargo build --color always --locked --release --target x86_64-pc-windows-msvc -Zbuild-std
title "Install artifacts" title "Install artifacts"
install -t "$OUTPUT/" target/x86_64-pc-windows-msvc/release/dtmt.exe install -v -t "$OUTPUT/" target/x86_64-pc-windows-msvc/release/dtmt.exe
install -t "$OUTPUT/" target/x86_64-pc-windows-msvc/release/dtmm.exe install -v -t "$OUTPUT/" target/x86_64-pc-windows-msvc/release/dtmm.exe
;; ;;
linux) linux)
cp /src/*.a ./lib/oodle/ cp /src/*.a ./lib/oodle/
title "Build project for target $TARGET" title "Building project for target $TARGET"
cargo build --color always --locked --profile release-lto cargo build --color always --locked --profile release-lto
title "Install artifacts" title "Installing artifacts"
install -t "$OUTPUT/" target/release-lto/dtmt install -v -t "$OUTPUT/" target/release-lto/dtmt
install -t "$OUTPUT/" target/release-lto/dtmm install -v -t "$OUTPUT/" target/release-lto/dtmm
;; ;;
*) *)
echo "Env var 'TARGET' must either be 'msvc' or 'linux'. Got '$TARGET'." >&2 echo -e "\033[31;1mEnv var 'TARGET' must either be 'msvc' or 'linux'. Got '$TARGET'.\033[0m" >&2
exit 1 exit 1
esac esac
title "Done"

View file

@ -1,7 +1,15 @@
#!/bin/sh #!/bin/sh
set -eux set -eu
title() {
printf "\033[1m%s\033[0m\n" "$1"
}
title "Install clippy"
rustup component add clippy rustup component add clippy
title "Run clippy"
cargo clippy --color always --no-deps cargo clippy --color always --no-deps
title "Done"

1
.gitmodules vendored
View file

@ -7,6 +7,7 @@
[submodule "lib/color-eyre"] [submodule "lib/color-eyre"]
path = lib/color-eyre path = lib/color-eyre
url = https://github.com/sclu1034/color-eyre.git url = https://github.com/sclu1034/color-eyre.git
branch = "fork"
[submodule "lib/ansi-parser"] [submodule "lib/ansi-parser"]
path = lib/ansi-parser path = lib/ansi-parser
url = https://gitlab.com/lschwiderski/ansi-parser.git url = https://gitlab.com/lschwiderski/ansi-parser.git

View file

@ -29,7 +29,7 @@ ci-image-linux:
docker push registry.sclu1034.dev/dtmt-ci-base-linux docker push registry.sclu1034.dev/dtmt-ci-base-linux
set-base-pipeline: set-base-pipeline:
fly -t ((fly_target)) set-pipeline \ fly -t {{fly_target}} set-pipeline \
--pipeline dtmt-prs \ --pipeline dtmt-prs \
--config .ci/pipelines/base-pipeline.yml \ --config .ci/pipelines/base-pipeline.yml \
-v gitea_api_key=${GITEA_API_KEY} \ -v gitea_api_key=${GITEA_API_KEY} \
@ -46,7 +46,7 @@ set-pr-pipeline pr:
--pipeline dtmt-pr \ --pipeline dtmt-pr \
--config .ci/pipelines/pr.yml \ --config .ci/pipelines/pr.yml \
-v gitea_api_key=${GITEA_API_KEY} \ -v gitea_api_key=${GITEA_API_KEY} \
-i n={{pr}} \ -i number={{pr}} \
-y branch="$(yq -y '.head.ref' 'pr-{{pr}}.yaml')" \ -y branch="$(yq -y '.head.ref' 'pr-{{pr}}.yaml')" \
-y pr="$(cat 'pr-{{pr}}.yaml')" -y pr="$(cat 'pr-{{pr}}.yaml')"

@ -1 +1 @@
Subproject commit 55f8c6b7481d462e50ee4a03a43253d80d648ae2 Subproject commit 0fa05eba9954be223b06468c8760b97e660f9941

@ -1 +1 @@
Subproject commit 24da35e631099e914d6fc1bcc863228c48e540ec Subproject commit 19120166f9fc7838b98c71fc348791abc820e323