[Application] chore: implement app transfer period #4193
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: Main build | |
on: | |
push: | |
branches: ["main"] | |
pull_request: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }} | |
cancel-in-progress: true | |
jobs: | |
build-push-container: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: "0" # Per https://github.com/ignite/cli/issues/1674#issuecomment-1144619147 | |
- name: install ignite | |
run: make ignite_install | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: "1.23.0" | |
- name: Install CI dependencies | |
run: make install_ci_deps | |
# This is commented out because proto generated code is now tracked in the | |
# repo so this step is skipped. | |
# TODO_IMPROVE(@okdas): Have a step that regenerates the proto files and ensures | |
# if they are up to date. See https://github.com/pokt-network/poktroll/pull/544#issuecomment-2123063491 | |
# - name: Generate protobufs | |
# run: make proto_regen | |
- name: Build | |
run: ignite chain build -v --debug --skip-proto | |
- name: Set up Docker Buildx | |
if: (github.ref == 'refs/heads/main') || (contains(github.event.pull_request.labels.*.name, 'push-image')) || (contains(github.event.pull_request.labels.*.name, 'devnet-test-e2e')) | |
uses: docker/setup-buildx-action@v3 | |
- name: Docker Metadata action | |
if: (github.ref == 'refs/heads/main') || (contains(github.event.pull_request.labels.*.name, 'push-image')) || (contains(github.event.pull_request.labels.*.name, 'devnet-test-e2e')) | |
id: meta | |
uses: docker/metadata-action@v5 | |
env: | |
DOCKER_METADATA_PR_HEAD_SHA: "true" | |
with: | |
images: | | |
ghcr.io/pokt-network/poktrolld | |
tags: | | |
type=ref,event=branch,suffix=-dev | |
type=ref,event=pr | |
type=sha | |
type=sha,format=long | |
- name: Login to GitHub Container Registry | |
if: (github.ref == 'refs/heads/main') || (contains(github.event.pull_request.labels.*.name, 'push-image')) || (contains(github.event.pull_request.labels.*.name, 'devnet-test-e2e')) | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Copy binaries to inside of the Docker context | |
if: (github.ref == 'refs/heads/main') || (contains(github.event.pull_request.labels.*.name, 'push-image')) || (contains(github.event.pull_request.labels.*.name, 'devnet-test-e2e')) | |
run: | | |
mkdir -p ./bin # Make sure the bin directory exists | |
cp $(which ignite) ./bin # Copy ignite binary to the repo's bin directory | |
cp $(go env GOPATH)/bin/poktrolld ./bin # Copy the binary to the repo's bin directory | |
ls -la ./bin | |
- name: Build and push Docker image | |
if: (github.ref == 'refs/heads/main') || (contains(github.event.pull_request.labels.*.name, 'push-image')) || (contains(github.event.pull_request.labels.*.name, 'devnet-test-e2e')) | |
uses: docker/build-push-action@v5 | |
with: | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
# NB: Uncomment below if arm64 build is needed; arm64 builds are off by default because build times are significant. | |
platforms: linux/amd64 #,linux/arm64 | |
file: Dockerfile.dev | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
context: . | |
run-e2e-tests: | |
timeout-minutes: 30 | |
needs: build-push-container | |
if: contains(github.event.pull_request.labels.*.name, 'devnet-test-e2e') | |
runs-on: ubuntu-latest | |
env: | |
GKE_CLUSTER: protocol-us-central1 | |
GKE_ZONE: us-central1 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
sparse-checkout: | | |
.github | |
- id: "auth" | |
name: "Authenticate to Google Cloud" | |
uses: "google-github-actions/auth@v1" | |
with: | |
credentials_json: "${{ secrets.GKE_PROTOCOL_US_CENTRAL }}" | |
- uses: google-github-actions/get-gke-credentials@v1 | |
with: | |
cluster_name: ${{ env.GKE_CLUSTER }} | |
location: ${{ env.GKE_ZONE }} | |
project_id: ${{ secrets.GKE_PROTOCOL_PROJECT }} | |
- name: Run E2E test job | |
env: | |
IMAGE_TAG: sha-${{ github.event.pull_request.head.sha || github.sha }} | |
NAMESPACE: devnet-issue-${{ github.event.number }} | |
JOB_NAME: e2e-test-${{ github.event.pull_request.head.sha || github.sha }} | |
POCKET_NODE: tcp://devnet-issue-${{ github.event.number }}-validator-poktrolld:26657 | |
run: bash .github/workflows-helpers/run-e2e-test.sh |