-
Notifications
You must be signed in to change notification settings - Fork 5
132 lines (115 loc) · 4.67 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: CI
on:
push:
branches:
- main
- develop
paths-ignore:
- "**/CHANGELOG.md"
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}
cancel-in-progress: true
# env:
# DOCKER_IMAGE: hirosystems/${{ github.event.repository.name }}
jobs:
runehook-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Cache cargo
uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Setup integration environment
run: |
sudo ufw disable
docker-compose -f docker/docker-compose.dev.postgres.yml up -d
docker-compose -f docker/docker-compose.dev.postgres.yml logs -t -f --no-color &> docker-compose-logs.txt &
- name: Cargo test
run: |
rustup update
RUST_BACKTRACE=1 cargo test --all -- --test-threads=1
# - name: Upload coverage reports to Codecov
# uses: codecov/[email protected]
# with:
# token: ${{ secrets.CODECOV_TOKEN }}
# slug: hirosystems/ordhook
- name: Print integration environment logs
run: cat docker-compose-logs.txt
if: failure()
- name: Teardown integration environment
run: docker-compose -f docker/docker-compose.dev.postgres.yml down -v -t 0
if: always()
# runehook-build-publish:
# runs-on: ubuntu-latest
# needs: runehook-test
# outputs:
# docker_image_digest: ${{ steps.docker_push.outputs.digest }}
# new_release_published: ${{ steps.semantic.outputs.new_release_published }}
# steps:
# - uses: actions/checkout@v4
# with:
# persist-credentials: false
# - name: Semantic Release
# uses: cycjimmy/semantic-release-action@v4
# id: semantic
# # Only run on non-PR events or only PRs that aren't from forks
# if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# SEMANTIC_RELEASE_PACKAGE: ${{ github.event.repository.name }}
# with:
# semantic_version: 19
# extra_plugins: |
# @semantic-release/[email protected]
# @semantic-release/[email protected]
# - name: Checkout tag
# if: steps.semantic.outputs.new_release_version != ''
# uses: actions/checkout@v4
# with:
# persist-credentials: false
# ref: v${{ steps.semantic.outputs.new_release_version }}
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
# - name: Docker Meta
# id: meta
# uses: docker/metadata-action@v5
# with:
# images: |
# ${{ env.DOCKER_IMAGE }}
# tags: |
# type=ref,event=branch
# type=ref,event=pr
# type=semver,pattern={{version}},value=${{ steps.semantic.outputs.new_release_version }},enable=${{ steps.semantic.outputs.new_release_version != '' }}
# type=semver,pattern={{major}}.{{minor}},value=${{ steps.semantic.outputs.new_release_version }},enable=${{ steps.semantic.outputs.new_release_version != '' }}
# type=raw,value=latest,enable={{is_default_branch}}
# - name: Log in to DockerHub
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_PASSWORD }}
# - name: Build/Push Image
# uses: docker/build-push-action@v5
# id: docker_push
# with:
# context: .
# tags: ${{ steps.meta.outputs.tags }}
# labels: ${{ steps.meta.outputs.labels }}
# file: ./dockerfiles/components/ordhook.dockerfile
# build-args: |
# GIT_COMMIT=${{ env.GITHUB_SHA_SHORT }}
# cache-from: type=gha
# cache-to: type=gha,mode=max
# # Only push if (there's a new release on main branch, or if building a non-main branch) and (Only run on non-PR events or only PRs that aren't from forks)
# push: ${{ (github.ref != 'refs/heads/main' || steps.semantic.outputs.new_release_version != '') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }}