Skip to content

Commit

Permalink
[ci] Migrate CI from GitLab to GitHub (#593)
Browse files Browse the repository at this point in the history
* [ci] Migrate CI from GitLab to GitHub

* fix docker path

* unite backend jobs into one workflow

* rm files

* add cache-on-failure to tests cache

* add deploy workflow

* change wfl name

* readme

* fix readme

* typo
  • Loading branch information
alvicsam authored Oct 29, 2024
1 parent 0cd8726 commit b16ad2e
Show file tree
Hide file tree
Showing 11 changed files with 334 additions and 422 deletions.
109 changes: 109 additions & 0 deletions .github/workflows/backend.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
name: Backend CI

on:
push:
branches:
- master
paths:
- ".github/workflows/backend*"
- "backend/**"
- "!frontend/**"
pull_request:
paths:
- ".github/workflows/backend*"
- "backend/**"
- "!frontend/**"

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
CARGO_TERM_COLOR: always

defaults:
run:
working-directory: ./backend

jobs:
check:
name: Check Code
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4

- name: Install Rust stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true

- name: Rust Cache
uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3
with:
workspaces: backend

- name: Build
run: cargo check --all-targets --verbose
tests:
name: Run tests
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4

- name: Install Rust stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true

- name: Rust Cache
uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3
with:
workspaces: backend
cache-on-failure: true

- name: Cargo test
run: cargo test --verbose --jobs 1
docs:
name: Check Documentation
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4

- name: Install Rust stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true

- name: Rust Cache
uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3
with:
workspaces: backend

- name: Check internal documentation links
run: RUSTDOCFLAGS="--deny broken_intra_doc_links" cargo doc --verbose --workspace --no-deps --document-private-items
fmt:
name: Run rustfmt
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4

- name: Install Rust stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: clippy, rustfmt

- name: Cargo fmt
run: cargo fmt --verbose --all -- --check
45 changes: 0 additions & 45 deletions .github/workflows/backend_check.yml

This file was deleted.

45 changes: 0 additions & 45 deletions .github/workflows/backend_docs.yml

This file was deleted.

41 changes: 0 additions & 41 deletions .github/workflows/backend_fmt.yml

This file was deleted.

45 changes: 0 additions & 45 deletions .github/workflows/backend_tests.yml

This file was deleted.

73 changes: 73 additions & 0 deletions .github/workflows/docker-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Docker Build
# Workflow checks that docker build works

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
IMAGE_NAME: parity/substrate-telemetry

jobs:
set-variables:
name: Set variables
runs-on: ubuntu-latest
outputs:
VERSION: ${{ steps.version.outputs.VERSION }}
steps:
- name: Define version
id: version
run: |
export COMMIT_SHA=${{ github.sha }}
export COMMIT_SHA_SHORT=${COMMIT_SHA:0:8}
export REF_NAME=${{ github.ref_name }}
export REF_SLUG=${REF_NAME//\//_}
if [[ ${REF_SLUG} == "main" ]]
then
echo "VERSION=${REF_SLUG}-${COMMIT_SHA_SHORT}" >> $GITHUB_OUTPUT
else
echo "VERSION=${REF_SLUG}" >> $GITHUB_OUTPUT
fi
echo "set VERSION=${VERSION}"
build_backend:
name: Build backend docker image
runs-on: ubuntu-latest
needs: [set-variables]
env:
VERSION: ${{ needs.set-variables.outputs.VERSION }}
steps:
- name: Check out the repo
uses: actions/checkout@v4

- name: Build and push Docker image from main
uses: docker/build-push-action@v5
with:
context: backend
file: ./backend/Dockerfile
push: false
tags: |
${{ env.IMAGE_NAME }}-backend:${{ env.VERSION }}
build_frontend:
name: Build frontend docker image
runs-on: ubuntu-latest
needs: [set-variables]
env:
VERSION: ${{ needs.set-variables.outputs.VERSION }}
steps:
- name: Check out the repo
uses: actions/checkout@v4

- name: Build and push Docker image from main
uses: docker/build-push-action@v5
with:
context: frontend
file: ./frontend/Dockerfile
push: false
tags: |
${{ env.IMAGE_NAME }}-frontend:${{ env.VERSION }}
4 changes: 4 additions & 0 deletions .github/workflows/frontend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ on:
- 'frontend/**'
- '!backend/**'

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

defaults:
run:
working-directory: ./frontend
Expand Down
22 changes: 0 additions & 22 deletions .github/workflows/gitspiegel-trigger.yml

This file was deleted.

Loading

0 comments on commit b16ad2e

Please sign in to comment.