chore(direnv): import dev.env if exists #3094
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: tests | |
defaults: | |
run: | |
shell: bash | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
- mainnet/main | |
tags: | |
- v* | |
jobs: | |
build-macos: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: git fetch --prune --unshallow | |
- run: | | |
while IFS='' read -r LINE || [ -n "${LINE}" ]; do | |
echo "$LINE" >> $GITHUB_ENV; | |
done < .env | |
- run: | | |
brew install bash | |
sudo chsh -s /usr/local/bin/bash | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: "${{ env.GOLANG_VERSION }}" | |
- run: make bins | |
build-bins: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: git fetch --prune --unshallow | |
- uses: c-py/action-dotenv-to-setenv@v3 | |
with: | |
env-file: .env | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: "${{ env.GOLANG_VERSION }}" | |
- run: make bins | |
- run: make docker-image | |
tests: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: git fetch --prune --unshallow | |
- uses: c-py/action-dotenv-to-setenv@v3 | |
with: | |
env-file: .env | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: "${{ env.GOLANG_VERSION }}" | |
- run: make test-full | |
coverage: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: git fetch --prune --unshallow | |
- uses: c-py/action-dotenv-to-setenv@v3 | |
with: | |
env-file: .env | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: "${{ env.GOLANG_VERSION }}" | |
- run: make test-coverage | |
- uses: codecov/codecov-action@v3 | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: git fetch --prune --unshallow | |
- uses: c-py/action-dotenv-to-setenv@v3 | |
with: | |
env-file: .env | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: "${{ env.GOLANG_VERSION }}" | |
- run: make deps-tidy | |
- run: make build | |
- run: make test-vet | |
- name: lint all | |
run: make test-lint-all | |
- name: lint make-sublinters | |
run: make test-sublinters | |
shellcheck: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: git fetch --prune --unshallow | |
- uses: c-py/action-dotenv-to-setenv@v3 | |
with: | |
env-file: .env | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: "${{ env.GOLANG_VERSION }}" | |
- run: make shellcheck | |
sims: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: rokroskar/workflow-run-cleanup-action@master | |
env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
- uses: actions/checkout@v3 | |
- uses: c-py/action-dotenv-to-setenv@v3 | |
with: | |
env-file: .env | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: "${{ env.GOLANG_VERSION }}" | |
- name: test-sim-nondeterminism | |
run: make test-sim-nondeterminism | |
- name: test-sim-import-export | |
run: make test-sim-import-export | |
- name: test-sim-after-import | |
run: make test-sim-after-import | |
- name: test-sim-fullapp | |
run: make test-sim-fullapp | |
release-dry-run: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: git fetch --prune --unshallow | |
- uses: c-py/action-dotenv-to-setenv@v3 | |
with: | |
env-file: .env | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: "${{ env.GOLANG_VERSION }}" | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- uses: fregante/setup-git-user@v1 | |
- name: configure git tag | |
run: echo "RELEASE_TAG=v$(./script/semver.sh bump patch $(git describe --tags $(git rev-list --tags --max-count=1)))" >> $GITHUB_ENV | |
- name: git tag | |
run: git tag -a ${{ env.RELEASE_TAG }} -m ${{ env.RELEASE_TAG }} | |
- name: release dry-run | |
run: make release | |
network-upgrade-names: | |
runs-on: upgrade-tester | |
steps: | |
- uses: actions/checkout@v3 | |
- run: git fetch --prune --unshallow | |
- name: set environment | |
uses: HatsuneMiku3939/direnv-action@v1 | |
- name: Ensure only directories exists in upgrades dir | |
run: | | |
dir=./upgrades/software | |
if [[ $(find "$dir" ! -path "$dir" -maxdepth 1 -type f | wc -c) -ne 0 ]]; then | |
echo "$dir must contain only directories" | |
exit 1 | |
fi | |
- name: Ensure names of upgrade dirs are semver compliant | |
run: | | |
dir=./upgrades/software | |
while read upgrade; do | |
./script/semver.sh validate "$upgrade" | |
done <<< $(find "$dir" ! -path "$dir" -maxdepth 1 -type d -exec basename {} \;) | |
network-upgrade: | |
runs-on: upgrade-tester | |
steps: | |
- uses: actions/checkout@v3 | |
- run: git fetch --prune --unshallow | |
- name: set environment | |
uses: HatsuneMiku3939/direnv-action@v1 | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: "${{ env.GOLANG_VERSION }}" | |
- name: configure variables | |
run: | | |
test_required=$(./script/upgrades.sh test-required ${{ github.ref }}) | |
echo "TEST_REQUIRED=$test_required" >> $GITHUB_ENV | |
- name: run test | |
id: test | |
if: env.TEST_REQUIRED == 'true' | |
run: | | |
cd tests/upgrade | |
make test | |
- name: dump stderr | |
if: always() && steps.test.outcome != 'skipped' | |
run: cat .cache/run/upgrade/stderr.log | |
- name: upload stderr | |
if: always() && steps.test.outcome != 'skipped' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: stderr.log | |
path: .cache/run/upgrade/stderr.log | |
- name: upload stdout | |
if: always() && steps.test.outcome != 'skipped' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: stdout.log | |
path: .cache/run/upgrade/stdout.log | |
dispatch-release: | |
runs-on: ubuntu-latest | |
if: startsWith(github.event.ref, 'refs/tags/v') | |
needs: | |
- build-macos | |
- build-bins | |
- tests | |
- coverage | |
- lint | |
- sims | |
- release-dry-run | |
- network-upgrade | |
- shellcheck | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: trigger release process | |
uses: benc-uk/workflow-dispatch@v1 | |
with: | |
workflow: release.yaml |