Hotfix for h_tag alter table. #304
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
# SPDX-License-Identifier: ice License 1.0 | |
name: CI/CD | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
jobs: | |
verify-licensing: | |
name: Verify Licensing | |
if: ${{ (github.event_name == 'pull_request' && github.event.pull_request.draft == false) || github.event_name == 'push' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Find latest Go Version | |
id: findLatestGoVersion | |
run: | | |
LATEST_GO_VERSION=$(make latestGoVersion) | |
echo "::set-output name=latestGoVersion::$LATEST_GO_VERSION" | |
- name: Setup GO | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ steps.findLatestGoVersion.outputs.latestGoVersion }} | |
- name: Check License | |
run: make checkLicense | |
- name: Slack Notification For Failure/Cancellation | |
if: ${{ github.event_name == 'push' && (failure() || cancelled()) }} | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{ secrets.BACKEND_SLACK_WEBHOOK }} | |
SLACK_TITLE: CI Failed> ${{ job.status }} | |
SLACK_USERNAME: ${{ github.event.repository.name }}-ci-bot | |
SLACK_ICON: https://avatars.githubusercontent.com/u/102382658?s=400&u=62e73f4cb845c48a07a19e03c6f84b721e40c0a6&v=4 | |
SLACK_ICON_EMOJI: ':sob:' | |
SLACK_COLOR: ${{ job.status }} | |
SLACK_FOOTER: | | |
https://github.com/ice-blockchain/${{ github.event.repository.name }} | |
verify-latest-versions-used: | |
name: Verify Latest Versions | |
if: ${{ (github.event_name == 'pull_request' && github.event.pull_request.draft == false) || github.event_name == 'push' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Find latest Go Version | |
id: findLatestGoVersion | |
run: | | |
LATEST_GO_VERSION=$(make latestGoVersion) | |
echo "::set-output name=latestGoVersion::$LATEST_GO_VERSION" | |
- name: Setup GO | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ steps.findLatestGoVersion.outputs.latestGoVersion }} | |
- name: Check If We're Up to Date with Everything | |
run: make checkModVersion checkIfAllDependenciesAreUpToDate | |
- name: Slack Notification For Failure/Cancellation | |
if: ${{ github.event_name == 'push' && (failure() || cancelled()) }} | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{ secrets.BACKEND_SLACK_WEBHOOK }} | |
SLACK_TITLE: CI Failed> ${{ job.status }} | |
SLACK_USERNAME: ${{ github.event.repository.name }}-ci-bot | |
SLACK_ICON: https://avatars.githubusercontent.com/u/102382658?s=400&u=62e73f4cb845c48a07a19e03c6f84b721e40c0a6&v=4 | |
SLACK_ICON_EMOJI: ':sob:' | |
SLACK_COLOR: ${{ job.status }} | |
SLACK_FOOTER: | | |
https://github.com/ice-blockchain/${{ github.event.repository.name }} | |
verify-auto-generated: | |
name: Verify Auto Generated | |
if: ${{ (github.event_name == 'pull_request' && github.event.pull_request.draft == false) || github.event_name == 'push' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Find latest Go Version | |
id: findLatestGoVersion | |
run: | | |
LATEST_GO_VERSION=$(make latestGoVersion) | |
echo "::set-output name=latestGoVersion::$LATEST_GO_VERSION" | |
- name: Setup GO | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ steps.findLatestGoVersion.outputs.latestGoVersion }} | |
- name: Check Auto Generated Files | |
run: make checkGenerated | |
- name: Slack Notification For Failure/Cancellation | |
if: ${{ github.event_name == 'push' && (failure() || cancelled()) }} | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{ secrets.BACKEND_SLACK_WEBHOOK }} | |
SLACK_TITLE: CI Failed> ${{ job.status }} | |
SLACK_USERNAME: ${{ github.event.repository.name }}-ci-bot | |
SLACK_ICON: https://avatars.githubusercontent.com/u/102382658?s=400&u=62e73f4cb845c48a07a19e03c6f84b721e40c0a6&v=4 | |
SLACK_ICON_EMOJI: ':sob:' | |
SLACK_COLOR: ${{ job.status }} | |
SLACK_FOOTER: | | |
https://github.com/ice-blockchain/${{ github.event.repository.name }} | |
lint: | |
name: Lint | |
if: ${{ (github.event_name == 'pull_request' && github.event.pull_request.draft == false) || github.event_name == 'push' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Find latest Go Version | |
id: findLatestGoVersion | |
run: | | |
LATEST_GO_VERSION=$(make latestGoVersion) | |
echo "::set-output name=latestGoVersion::$LATEST_GO_VERSION" | |
- name: Setup GO | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ steps.findLatestGoVersion.outputs.latestGoVersion }} | |
# # # # # TODO Setup linting | |
# - name: golangci-lint | |
# uses: golangci/golangci-lint-action@v3 | |
# with: | |
# version: latest | |
- name: Slack Notification For Failure/Cancellation | |
if: ${{ github.event_name == 'push' && (failure() || cancelled()) }} | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{ secrets.BACKEND_SLACK_WEBHOOK }} | |
SLACK_TITLE: CI Failed> ${{ job.status }} | |
SLACK_USERNAME: ${{ github.event.repository.name }}-ci-bot | |
SLACK_ICON: https://avatars.githubusercontent.com/u/102382658?s=400&u=62e73f4cb845c48a07a19e03c6f84b721e40c0a6&v=4 | |
SLACK_ICON_EMOJI: ':sob:' | |
SLACK_COLOR: ${{ job.status }} | |
SLACK_FOOTER: | | |
https://github.com/ice-blockchain/${{ github.event.repository.name }} | |
build: | |
name: Build | |
if: ${{ (github.event_name == 'pull_request' && github.event.pull_request.draft == false) || github.event_name == 'push' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Find latest Go Version | |
id: findLatestGoVersion | |
run: | | |
LATEST_GO_VERSION=$(make latestGoVersion) | |
echo "::set-output name=latestGoVersion::$LATEST_GO_VERSION" | |
- name: Setup GO | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ steps.findLatestGoVersion.outputs.latestGoVersion }} | |
- name: Install libvips and ffmpeg for meta extraction | |
run: sudo apt-get update && sudo apt-get install -y libvips-dev ffmpeg | |
- name: Build all | |
run: make build-all@ci/cd | |
- name: Slack Notification For Failure/Cancellation | |
if: ${{ github.event_name == 'push' && (failure() || cancelled()) }} | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{ secrets.BACKEND_SLACK_WEBHOOK }} | |
SLACK_TITLE: CI Failed> ${{ job.status }} | |
SLACK_USERNAME: ${{ github.event.repository.name }}-ci-bot | |
SLACK_ICON: https://avatars.githubusercontent.com/u/102382658?s=400&u=62e73f4cb845c48a07a19e03c6f84b721e40c0a6&v=4 | |
SLACK_ICON_EMOJI: ':sob:' | |
SLACK_COLOR: ${{ job.status }} | |
SLACK_FOOTER: | | |
https://github.com/ice-blockchain/${{ github.event.repository.name }} | |
test: | |
name: Test | |
strategy: | |
matrix: | |
package: [ "cfg", "database/query", "server/http", "server/ws" ] | |
if: ${{ (github.event_name == 'pull_request' && github.event.pull_request.draft == false) || github.event_name == 'push' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Find latest Go Version | |
id: findLatestGoVersion | |
run: | | |
LATEST_GO_VERSION=$(make latestGoVersion) | |
echo "::set-output name=latestGoVersion::$LATEST_GO_VERSION" | |
- name: Setup GO | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ steps.findLatestGoVersion.outputs.latestGoVersion }} | |
- name: Install libvips and ffmpeg for meta extraction | |
run: sudo apt-get update && sudo apt-get install -y libvips-dev ffmpeg | |
- name: Test ${{ matrix.package }} | |
#TODO enable coverage | |
run: | | |
cd ${{ matrix.package }} | |
make -f ${{ github.workspace }}/Makefile test@ci/cd | |
# make -f ${{ github.workspace }}/Makefile coverage | |
- name: Slack Notification For Failure/Cancellation | |
if: ${{ github.event_name == 'push' && (failure() || cancelled()) }} | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{ secrets.BACKEND_SLACK_WEBHOOK }} | |
SLACK_TITLE: CI Failed> ${{ job.status }} | |
SLACK_USERNAME: ${{ github.event.repository.name }}-ci-bot | |
SLACK_ICON: https://avatars.githubusercontent.com/u/102382658?s=400&u=62e73f4cb845c48a07a19e03c6f84b721e40c0a6&v=4 | |
SLACK_ICON_EMOJI: ':sob:' | |
SLACK_COLOR: ${{ job.status }} | |
SLACK_FOOTER: | | |
subzero/${{ matrix.package }} | |
https://github.com/ice-blockchain/${{ github.event.repository.name }} | |
benchmark: | |
name: Benchmark | |
strategy: | |
matrix: | |
package: [ "database/query", "server/http", "server/ws" ] | |
if: ${{ (github.event_name == 'pull_request' && github.event.pull_request.draft == false) || github.event_name == 'push' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Find latest Go Version | |
id: findLatestGoVersion | |
run: | | |
LATEST_GO_VERSION=$(make latestGoVersion) | |
echo "::set-output name=latestGoVersion::$LATEST_GO_VERSION" | |
- name: Setup GO | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ steps.findLatestGoVersion.outputs.latestGoVersion }} | |
- name: Install libvips and ffmpeg for meta extraction | |
run: sudo apt-get update && sudo apt-get install -y libvips-dev ffmpeg | |
- name: Benchmark ${{ matrix.package }} | |
run: | | |
cd ${{ matrix.package }} | |
make -f ${{ github.workspace }}/Makefile benchmark@ci/cd | |
- name: Slack Notification For Failure/Cancellation | |
if: ${{ github.event_name == 'push' && (failure() || cancelled()) }} | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{ secrets.BACKEND_SLACK_WEBHOOK }} | |
SLACK_TITLE: CI Failed> ${{ job.status }} | |
SLACK_USERNAME: ${{ github.event.repository.name }}-ci-bot | |
SLACK_ICON: https://avatars.githubusercontent.com/u/102382658?s=400&u=62e73f4cb845c48a07a19e03c6f84b721e40c0a6&v=4 | |
SLACK_ICON_EMOJI: ':sob:' | |
SLACK_COLOR: ${{ job.status }} | |
SLACK_FOOTER: | | |
subzero/${{ matrix.package }} | |
https://github.com/ice-blockchain/${{ github.event.repository.name }} | |
PR: | |
needs: [verify-licensing, verify-latest-versions-used, verify-auto-generated, lint, build, test, benchmark] | |
name: PR | |
if: ${{ always() && (github.event_name == 'pull_request' && github.event.pull_request.draft == false) || github.event_name == 'push' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checking if all previous jobs were successful | |
env: | |
ALL_SUCCESSFUL: ${{ contains(join(needs.*.result, ','), 'failure') == false && contains(join(needs.*.result, ','), 'cancelled') == false && contains(join(needs.*.result, ','), 'skipped') == false }} | |
run: | | |
if [ $ALL_SUCCESSFUL == 'true' ] | |
then | |
exit 0 | |
else | |
exit 1 | |
fi | |
- name: Slack Notification For Failure/Cancellation | |
if: ${{ github.event_name == 'push' && (failure() || cancelled()) }} | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{ secrets.BACKEND_SLACK_WEBHOOK }} | |
SLACK_TITLE: CI Failed> ${{ job.status }} | |
SLACK_USERNAME: ${{ github.event.repository.name }}-ci-bot | |
SLACK_ICON: https://avatars.githubusercontent.com/u/102382658?s=400&u=62e73f4cb845c48a07a19e03c6f84b721e40c0a6&v=4 | |
SLACK_ICON_EMOJI: ':sob:' | |
SLACK_COLOR: ${{ job.status }} | |
SLACK_FOOTER: | | |
https://github.com/ice-blockchain/${{ github.event.repository.name }} | |
release: | |
needs: [PR] | |
name: Release | |
outputs: | |
nextTag: ${{ steps.check_tag.outputs.next_tag }} | |
if: ${{ github.event_name == 'push' }} | |
runs-on: ubuntu-latest | |
permissions: write-all | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Find latest Go Version | |
id: findLatestGoVersion | |
run: | | |
LATEST_GO_VERSION=$(make latestGoVersion) | |
echo "::set-output name=latestGoVersion::$LATEST_GO_VERSION" | |
- name: Setup GO | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ steps.findLatestGoVersion.outputs.latestGoVersion }} | |
- name: Install libvips and ffmpeg for meta extraction | |
run: sudo apt-get update && sudo apt-get install -y libvips-dev ffmpeg | |
- name: Build Artefacts | |
run: env GOOS=linux env GOARCH=amd64 make buildAllBinaries | |
- name: Compute new Tag version | |
id: compute_tag | |
uses: craig-day/compute-tag@v14 | |
with: | |
github_token: ${{ github.token }} | |
version_type: minor | |
- id: check_tag | |
name: Check new computed Tag version | |
run: | | |
NEW_TAG_VERSION=$(echo "$NEW_TAG_VERSION" | sed 's/.\{2\}$//') | |
if [ $NEW_TAG_VERSION == 'v1.0.0' ] | |
then | |
echo "::set-output name=next_tag::$NEW_TAG_VERSION" | |
else | |
echo "::set-output name=next_tag::${NEW_TAG_VERSION}.0" | |
fi | |
env: | |
NEW_TAG_VERSION: ${{ steps.compute_tag.outputs.next_tag }} | |
- name: Create Release | |
id: create_release | |
uses: softprops/action-gh-release@v2 | |
with: | |
tag_name: ${{ steps.check_tag.outputs.next_tag }} | |
draft: false | |
prerelease: false | |
fail_on_unmatched_files: true | |
generate_release_notes: true | |
make_latest: true | |
files: | | |
subzero-ion-connect.linux.amd64.bin | |
subzero-ion-connect-indexer.linux.amd64.bin | |
- name: Slack Notification For Failure/Cancellation | |
if: ${{ github.event_name == 'push' && (failure() || cancelled()) }} | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{ secrets.BACKEND_SLACK_WEBHOOK }} | |
SLACK_TITLE: CI Failed> ${{ job.status }} | |
SLACK_USERNAME: ${{ github.event.repository.name }}-ci-bot | |
SLACK_ICON: https://avatars.githubusercontent.com/u/102382658?s=400&u=62e73f4cb845c48a07a19e03c6f84b721e40c0a6&v=4 | |
SLACK_ICON_EMOJI: ':sob:' | |
SLACK_COLOR: ${{ job.status }} | |
SLACK_FOOTER: | | |
https://github.com/ice-blockchain/${{ github.event.repository.name }} | |
trigger_deployment: | |
# needs: [ push_docker ] | |
needs: [ release ] | |
name: Trigger Deployment | |
if: ${{ github.event_name == 'push' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setting ENV variables for deployment | |
run: | | |
echo "APP_TAG=${{needs.release.outputs.nextTag}}" >> $GITHUB_ENV | |
- name: Checkout the target `master` branch of `secret-infrastructure` | |
uses: actions/checkout@v4 | |
with: | |
repository: ice-blockchain/secret-infrastructure | |
ref: master | |
token: ${{ secrets.ICE_CI_CD_BOT_GH_PAT }} | |
path: secret-infrastructure | |
fetch-depth: 0 | |
- name: Update [staging] application tag version in helm/subzero-ion-connect/staging/common-values.yaml | |
uses: mikefarah/yq@master | |
with: | |
cmd: | | |
cd secret-infrastructure | |
yq e -i '.generic-service-chart.applicationImage.tag = strenv(APP_TAG)' helm/subzero-ion-connect/staging/common-values.yaml | |
- name: Update [staging] application tag version in helm/subzero-ion-connect-indexer/staging/common-values.yaml | |
uses: mikefarah/yq@master | |
with: | |
cmd: | | |
cd secret-infrastructure | |
yq e -i '.generic-service-chart.applicationImage.tag = strenv(APP_TAG)' helm/subzero-ion-connect-indexer/staging/common-values.yaml | |
- name: Commit and Push Changes to Application Tag Version | |
run: | | |
cd secret-infrastructure | |
git config user.name "ice CI/CD Bot" | |
git config user.email [email protected] | |
git add helm/subzero-ion-connect/staging/common-values.yaml | |
git add helm/subzero-ion-connect-indexer/staging/common-values.yaml | |
git commit -m "Updated 'subzero-ion-connect' & 'subzero-ion-connect-indexer' tag version (${{env.APP_TAG}}) in application helm chart deployment manifests" | |
git push --set-upstream origin master | |
- name: Slack Notification For Success | |
if: ${{ success() }} | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{ secrets.BACKEND_SLACK_WEBHOOK }} | |
SLACK_TITLE: CI Succeeded, Waiting for Deployment Status Notification... | |
SLACK_USERNAME: ${{ github.event.repository.name }}-ci-bot | |
SLACK_ICON: https://avatars.githubusercontent.com/u/102382658?s=400&u=62e73f4cb845c48a07a19e03c6f84b721e40c0a6&v=4 | |
SLACK_ICON_EMOJI: ':rocket:' | |
SLACK_COLOR: ${{ job.status }} | |
SLACK_FOOTER: | | |
- | |
- name: Slack Notification For Failure | |
if: ${{ github.event_name == 'push' && (failure() || cancelled()) }} | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_WEBHOOK: ${{ secrets.BACKEND_SLACK_WEBHOOK }} | |
SLACK_TITLE: CI Failed> ${{ job.status }} | |
SLACK_USERNAME: ${{ github.event.repository.name }}-ci-bot | |
SLACK_ICON: https://avatars.githubusercontent.com/u/102382658?s=400&u=62e73f4cb845c48a07a19e03c6f84b721e40c0a6&v=4 | |
SLACK_ICON_EMOJI: ':sob:' | |
SLACK_COLOR: ${{ job.status }} | |
SLACK_FOOTER: | | |
- |