From 6978cf2c1bc2d108ea5330a35cd677ffd0903168 Mon Sep 17 00:00:00 2001 From: Rafael Cardenas Date: Thu, 27 Jun 2024 10:49:03 -0600 Subject: [PATCH] test: first attempt at ci --- .github/workflows/ci.yml | 132 +++++++++++++++++++ docker/docker-compose.dev.postgres.yml | 11 ++ {dockerfiles => docker}/runehook.dockerfile | 0 {dockerfiles => docker}/runes-api.dockerfile | 0 src/db/models/db_rune.rs | 3 +- 5 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/ci.yml create mode 100644 docker/docker-compose.dev.postgres.yml rename {dockerfiles => docker}/runehook.dockerfile (100%) rename {dockerfiles => docker}/runes-api.dockerfile (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..573fca2 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,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/codecov-action@v4.0.1 + # 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/changelog@6.0.3 + # @semantic-release/git@10.0.1 + # conventional-changelog-conventionalcommits@6.1.0 + + # - 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) }} diff --git a/docker/docker-compose.dev.postgres.yml b/docker/docker-compose.dev.postgres.yml new file mode 100644 index 0000000..9f4be69 --- /dev/null +++ b/docker/docker-compose.dev.postgres.yml @@ -0,0 +1,11 @@ +version: '3.7' +services: + postgres: + image: "postgres:15" + ports: + - "5432:5432" + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: postgres + POSTGRES_PORT: 5432 diff --git a/dockerfiles/runehook.dockerfile b/docker/runehook.dockerfile similarity index 100% rename from dockerfiles/runehook.dockerfile rename to docker/runehook.dockerfile diff --git a/dockerfiles/runes-api.dockerfile b/docker/runes-api.dockerfile similarity index 100% rename from dockerfiles/runes-api.dockerfile rename to docker/runes-api.dockerfile diff --git a/src/db/models/db_rune.rs b/src/db/models/db_rune.rs index 1d77d13..0c17044 100644 --- a/src/db/models/db_rune.rs +++ b/src/db/models/db_rune.rs @@ -206,6 +206,7 @@ mod test { &"14e87956a6bb0f50df1515e85f1dcc4625a7e2ebeb08ab6db7d9211c7cf64fa3".to_string(), 0, ); - assert!(db_rune.name == "UNCOMMON•GOODS"); + assert!(db_rune.name == "UNCOMMONGOODS"); + assert!(db_rune.spaced_name == "UNCOMMON•GOODS"); } }