Skip to content

Commit

Permalink
ci: migrate from gitlab to github (#183)
Browse files Browse the repository at this point in the history
* [WIP] ci: migrate from gitlab to github

* add deploy workflow

* rm gitlab

* fix deploy

* fix teleport token, add prod deploy condition
  • Loading branch information
alvicsam authored Nov 18, 2024
1 parent 50519fa commit b1484c6
Show file tree
Hide file tree
Showing 6 changed files with 194 additions and 199 deletions.
72 changes: 72 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: CI

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
set-variables:
name: Set variables
runs-on: ubuntu-latest
timeout-minutes: 10
outputs:
VERSION: ${{ steps.version.outputs.VERSION }}
steps:
- name: Define version
id: version
run: |
export COMMIT_SHA=${{ github.sha }}
export COMMIT_SHA_SHORT=${COMMIT_SHA:0:8}
export REF_NAME=${{ github.ref_name }}
export REF_SLUG=${REF_NAME//\//_}
echo "short sha: ${COMMIT_SHA_SHORT} slug: ${REF_SLUG}"
if [[ ${REF_SLUG} == "master" ]]
then
export VERSION=${REF_SLUG}-${COMMIT_SHA_SHORT}
echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT
else
export VERSION=${REF_SLUG}
echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT
fi
echo "set COMMIT_SHA_SHORT=${COMMIT_SHA_SHORT}"
echo "set VERSION=${VERSION}"
ci:
name: Run lint, test
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Check out the repo
uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- name: Tests
run: |
yarn --immutable
yarn lint
yarn test
build_image:
name: Build docker image
runs-on: ubuntu-latest
needs: [set-variables]
timeout-minutes: 10
env:
VERSION: ${{ needs.set-variables.outputs.VERSION }}
IMAGE_NAME: "docker.io/paritytech/substrate-tip-bot"
steps:
- name: Check out the repo
uses: actions/checkout@v4

- name: Build Docker image
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: false
tags: |
${{ env.IMAGE_NAME }}:${{ env.VERSION }}
22 changes: 0 additions & 22 deletions .github/workflows/gitspiegel-trigger.yml

This file was deleted.

114 changes: 114 additions & 0 deletions .github/workflows/publish-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
name: Publish and deploy

on:
push:
branches:
- master
tags:
- v*
- stg-v*

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

#to use reusable workflow
permissions:
id-token: write
contents: read

env:
APP: "substrate-tip-bot"

jobs:
set-variables:
name: Set variables
runs-on: ubuntu-latest
outputs:
VERSION: ${{ steps.version.outputs.VERSION }}
steps:
- name: Define version
id: version
run: |
export COMMIT_SHA=${{ github.sha }}
export COMMIT_SHA_SHORT=${COMMIT_SHA:0:8}
export REF_NAME=${{ github.ref_name }}
export REF_SLUG=${REF_NAME//\//_}
echo "short sha: ${COMMIT_SHA_SHORT} slug: ${REF_SLUG}"
if [[ ${REF_SLUG} == "master" ]]
then
export VERSION=${REF_SLUG}-${COMMIT_SHA_SHORT}
echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT
else
export VERSION=${REF_SLUG}
echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT
fi
echo "set VERSION=${VERSION}"
build_push_docker:
name: Build docker image
runs-on: ubuntu-latest
environment: master_n_tags
needs: [set-variables]
env:
VERSION: ${{ needs.set-variables.outputs.VERSION }}
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: Build Docker image
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: true
tags: |
docker.io/paritytech/substrate-tip-bot:${{ env.VERSION }}
deploy-stg:
name: Deploy Staging
runs-on: ubuntu-latest
needs: [set-variables, build_push_docker]
environment: parity-stg
env:
VERSION: ${{ needs.set-variables.outputs.VERSION }}
ARGOCD_SERVER: "argocd-stg.teleport.parity.io"
steps:
- name: Deploy to ArgoCD
uses: paritytech/argocd-deployment-action@main
with:
environment: "parity-stg"
tag: "${{ env.VERSION }}"
app_name: "${{ env.APP }}"
app_packages: "common"
argocd_server: ${{ env.ARGOCD_SERVER }}
teleport_token: "substrate-tip"
teleport_app_name: "argocd-stg"
argocd_auth_token: ${{ secrets.ARGOCD_AUTH_TOKEN }}

deploy-prod:
name: Deploy Production
runs-on: ubuntu-latest
needs: [set-variables, deploy-stg]
# deploy only on tags
if: startsWith(github.ref, 'refs/tags/v')
environment: parity-prod
env:
VERSION: ${{ needs.set-variables.outputs.VERSION }}
ARGOCD_SERVER: "argocd-prod.teleport.parity.io"
steps:
- name: Deploy to ArgoCD
uses: paritytech/argocd-deployment-action@main
with:
environment: "parity-prod"
tag: "${{ env.VERSION }}"
app_name: "${{ env.APP }}"
app_packages: "common"
argocd_server: ${{ env.ARGOCD_SERVER }}
teleport_token: "substrate-tip"
teleport_app_name: "argocd-prod"
argocd_auth_token: ${{ secrets.ARGOCD_AUTH_TOKEN }}
4 changes: 4 additions & 0 deletions .github/workflows/test-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ on:
branches:
- master

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
test-e2e:
runs-on: ubuntu-22.04
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/test-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ on:
branches:
- master

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
test-integration:
timeout-minutes: 15
Expand Down
Loading

0 comments on commit b1484c6

Please sign in to comment.