Skip to content

Gaia Linux Build Main #2446

Gaia Linux Build Main

Gaia Linux Build Main #2446

name: Gaia Linux Build Main
on:
workflow_dispatch:
schedule:
- cron: '0 6,8,10,12,14,16,18 * * 1-5'
# push:
jobs:
collect_remote_commit:
name: Read latest main branch commit
runs-on: ubuntu-latest
outputs:
sha: ${{ steps.query_commit.outputs.sha }}
steps:
- name: Query latest commit on the main branch
id: query_commit
run: |
commit=$(curl -s -L -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/repos/cosmos/gaia/branches/main | jq -r '.commit.sha')
echo "sha=$commit" >> "$GITHUB_OUTPUT"
collect_latest_build:
name: Read latest release from build repo
runs-on: ubuntu-latest
outputs:
sha: ${{ steps.query_release.outputs.sha }}
steps:
- name: Query latest release
id: query_release
run: |
curl -s -L -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/repos/hyphacoop/cosmos-builds/releases\?per_page\=50 > releases.json
release=$(jq -r '.[] | select(.tag_name == "gaiad-linux-main") | .name' releases.json)
echo "sha=$release" >> "$GITHUB_OUTPUT"
build-binary:
name: Build binary
runs-on: ubuntu-latest
needs: [collect_remote_commit, collect_latest_build]
if: needs.collect_remote_commit.outputs.sha != needs.collect_latest_build.outputs.sha
permissions:
contents: write
steps:
- name: Check out repo
uses: actions/checkout@v3
- name: Remove old releases
uses: dev-drprasad/[email protected]
with:
keep_latest: 0
delete_tag_pattern: "gaiad-linux-main"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build and release
uses: ./.github/actions/build-gaiad-binary
with:
ref: main
release_name: gaiad-linux-main
remote_commit_sha: ${{ needs.collect_remote_commit.outputs.sha }}
github_token: ${{ secrets.GITHUB_TOKEN }}
bot_token: ${{ secrets.HYPHA_BOT_ACTIONS_TOKEN }}
build-docker:
name: Build Docker image
runs-on: ubuntu-latest
needs: [collect_remote_commit, collect_latest_build]
if: needs.collect_remote_commit.outputs.sha != needs.collect_latest_build.outputs.sha
permissions: write-all
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Log in to the Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Delete old docker images
uses: rafalkk/remove-dockertag-action@v1
continue-on-error: true
with:
tag_name: hyphacoop/gaia:main
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Retag
run: |
docker pull "ghcr.io/cosmos/gaia:main"
docker tag "ghcr.io/cosmos/gaia:main" "ghcr.io/hyphacoop/gaia:main"
docker push "ghcr.io/hyphacoop/gaia:main"