Skip to content

Setup workflows to copy swagger files #914

Setup workflows to copy swagger files

Setup workflows to copy swagger files #914

on:
push:
branches:
- 'main'
tags:
- 'smart-contract-verifier/v*'
paths:
- smart-contract-verifier/**
- .github/workflows/smart-contract-verifier.yml
- .github/workflows/_*.yml
- .github/actions/**
pull_request:
paths:
- smart-contract-verifier/**
- .github/workflows/smart-contract-verifier.yml
- .github/workflows/_*.yml
- .github/actions/**
name: Test, lint and docker (smart-contract-verifier)
defaults:
run:
working-directory: smart-contract-verifier
jobs:
# test:
# name: Unit, doc and integration tests
# runs-on: ubuntu-latest
# steps:
# - name: Checkout sources
# uses: actions/checkout@v4
#
# - name: Setup
# uses: ./.github/actions/setup
# with:
# working-directory: smart-contract-verifier
#
# - name: Unit tests
# run: RUST_BACKTRACE=1 RUST_LOG=info cargo test --locked --workspace --all-features --lib --bins -- --nocapture
# if: success() || failure()
#
# - name: Doc tests
# run: RUST_BACKTRACE=1 RUST_LOG=info cargo test --locked --workspace --all-features --doc -- --skip proto
# if: success() || failure()
#
# - name: Integration tests
# run: RUST_BACKTRACE=1 RUST_LOG=info cargo test --locked --workspace --test '*' -- --nocapture
# if: success() || failure()
#
# lint:
# name: Linting
# uses: ./.github/workflows/_linting.yml
# with:
# working-directory: smart-contract-verifier
#
# docker:
# name: Docker build and docker push
# needs:
# - test
# - lint
# if: |
# always() &&
# (needs.test.result == 'success' || needs.test.result == 'cancelled') &&
# (needs.lint.result == 'success' || needs.lint.result == 'cancelled')
# uses: ./.github/workflows/_docker-build-push.yml
# with:
# service-name: smart-contract-verifier
copy-swagger:
name: Copy swagger to public repo
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get the current tag, branch, or commit hash
id: git_info
run: |
if [ -n "${GITHUB_REF##*refs/tags/*}" ]; then
echo "version=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
elif [ -n "${GITHUB_REF##*refs/heads/*}" ]; then
echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
else
echo "version=${GITHUB_SHA}" >> $GITHUB_ENV
fi
- name: Copy swagger.yaml to temporary location
run: |
mkdir -p ~/swaggers
cp smart-contract-verifier-proto/swagger/v2/smart-contract-verifier.swagger.yaml swagger.yaml
ls -la ~/swaggers
- name: Push swagger to another repo
uses: dmnemec/copy_file_to_another_repo_action@main
env:
API_TOKEN_GITHUB: ${{ secrets.BLOCKSCOUT_BOT_TOKEN }}
with:
source_file: 'smart-contract-verifier/swagger.yaml'
destination_repo: 'blockscout/swaggers'
destination_folder: "services/smart-contract-verifier/${{ env.version }}"
user_email: '[email protected]'
user_name: 'blockscout-bot'
destination_branch: 'master'