Speedup CI (#3852)
authorNutomic <me@nutomic.com>
Tue, 8 Aug 2023 14:35:03 +0000 (16:35 +0200)
committerGitHub <noreply@github.com>
Tue, 8 Aug 2023 14:35:03 +0000 (10:35 -0400)
* Speedup CI

* run tests in parallel

* restore cp

* main push

* no self update

* parallel format

.woodpecker.yml

index 7fa461bc2fd8f51867490b382ed9b666d4240ed8..4c1be3aa1815593f3257b6884291608af04425ba 100644 (file)
@@ -38,16 +38,25 @@ pipeline:
       - git submodule update
 
   prettier_check:
+    group: format
     image: tmknom/prettier:3.0.0
     commands:
       - prettier -c . '!**/volumes' '!**/dist' '!target' '!**/translations'
 
   toml_fmt:
+    group: format
     image: tamasfe/taplo:0.8.1
     commands:
       - taplo format --check
 
+  sql_fmt:
+    group: format
+    image: backplane/pgformatter:latest
+    commands:
+      - ./scripts/sql_format_check.sh
+
   cargo_fmt:
+    group: format
     image: *muslrust_image
     environment:
       # store cargo data in repo folder so that it gets cached between steps
@@ -55,22 +64,9 @@ pipeline:
     commands:
       # need make existing toolchain available
       - cp -n ~/.cargo . -r
-      - rustup toolchain install nightly-2023-07-10
-      - rustup component add rustfmt --toolchain nightly-2023-07-10
+      - rustup toolchain install nightly-2023-07-10 --no-self-update --profile minimal --component rustfmt
       - cargo +nightly-2023-07-10 fmt -- --check
 
-  sql_fmt:
-    image: alpine:3
-    commands:
-      - apk add bash wget perl make git
-      - wget https://github.com/darold/pgFormatter/archive/refs/tags/v5.5.tar.gz
-      - tar xzf v5.5.tar.gz
-      - cd pgFormatter-5.5
-      - perl Makefile.PL
-      - make && make install
-      - cd ..
-      - ./scripts/./sql_format_check.sh
-
   restore-cache:
     image: meltwater/drone-cache:v1
     pull: true
@@ -176,27 +172,29 @@ pipeline:
         -D clippy::indexing_slicing
     when: *slow_check_paths
 
-  cargo_test:
+  cargo_build:
     image: *muslrust_image
     environment:
-      LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432/lemmy
-      RUST_BACKTRACE: "1"
       CARGO_HOME: .cargo
     commands:
-      - export LEMMY_CONFIG_LOCATION=../../config/config.hjson
-      - cargo test --workspace --no-fail-fast
+      - cargo build
+      - mv target/x86_64-unknown-linux-musl/debug/lemmy_server target/lemmy_server
     when: *slow_check_paths
 
-  cargo_build:
+  cargo_test:
+    group: tests
     image: *muslrust_image
     environment:
+      LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432/lemmy
+      RUST_BACKTRACE: "1"
       CARGO_HOME: .cargo
     commands:
-      - cargo build
-      - mv target/x86_64-unknown-linux-musl/debug/lemmy_server target/lemmy_server
+      - export LEMMY_CONFIG_LOCATION=../../config/config.hjson
+      - cargo test --workspace --no-fail-fast
     when: *slow_check_paths
 
   run_federation_tests:
+    group: tests
     image: node:alpine
     environment:
       LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432
@@ -231,7 +229,9 @@ pipeline:
         - "api_tests/node_modules"
     secrets:
       [MINIO_ENDPOINT, MINIO_WRITE_USER, MINIO_WRITE_PASSWORD, MINIO_BUCKET]
-    when: *slow_check_paths
+    when:
+      - event: push
+        branch: main
 
   publish_release_docker:
     image: woodpeckerci/plugin-docker-buildx