Skip to content

add offline test

add offline test #162

Workflow file for this run

name: CI
on:
push:
pull_request:
workflow_dispatch:
env:
go_version: 1.22.12
jobs:
define-env:
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
IMAGE_TAG: ${{ steps.ct_image_tag.outputs.IMAGE_TAG }}
IMAGE_PATH_0: ghcr.io/${{ github.repository }}
ROSETTA_BRANCH: ${{ steps.ct_image_tag.outputs.ROSETTA_BRANCH }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- id: ct_image_tag
run: |
# For pull requests, use GITHUB_HEAD_REF (source branch of PR)
# For push events, extract branch name from GITHUB_REF
if [ -n "$GITHUB_HEAD_REF" ]; then
BRANCH_NAME=$GITHUB_HEAD_REF
else
BRANCH_NAME=${GITHUB_REF#refs/*/}
fi
TAG_NORMALIZED=$(echo "$BRANCH_NAME" | sed "s/[^[:alpha:]0-9.-]/-/g")
if [[ "$TAG_NORMALIZED" == "main" ]]; then echo "IMAGE_TAG=latest" >> $GITHUB_OUTPUT
else echo "IMAGE_TAG=$TAG_NORMALIZED" >> $GITHUB_OUTPUT
fi
echo "ROSETTA_BRANCH=$BRANCH_NAME" >> $GITHUB_OUTPUT
build-container:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
needs:
- define-env
outputs:
IMAGE_SHA256_0: ${{ steps.image_sha256.outputs.IMAGE_SHA256_0 }}
steps:
- uses: actions/checkout@v3
- uses: docker/setup-qemu-action@v2
- uses: docker/setup-buildx-action@v2
- name: Login to ghcr.io
shell: bash
run: echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io --username ${{ github.actor }} --password-stdin
- name: Build and push container image
shell: bash
run: |
docker build --progress=plain --no-cache --build-arg ROSETTA_SRC=. --build-arg ROSETTA_BRANCH=${{ needs.define-env.outputs.ROSETTA_BRANCH }} --tag ${{ needs.define-env.outputs.IMAGE_PATH_0 }}:${{ needs.define-env.outputs.IMAGE_TAG }} -f ./server/Dockerfile .
docker push ${{ needs.define-env.outputs.IMAGE_PATH_0 }}:${{ needs.define-env.outputs.IMAGE_TAG }}
- name: get image sha256
id: image_sha256
run: |
docker pull ${{ needs.define-env.outputs.IMAGE_PATH_0 }}:${{ needs.define-env.outputs.IMAGE_TAG }}
export IMAGE_SHA256_0_FULL=$(docker image inspect --format='{{json .RepoDigests}}' ${{ needs.define-env.outputs.IMAGE_PATH_0 }}:${{ needs.define-env.outputs.IMAGE_TAG }} | jq --raw-output '.[0]')
echo "IMAGE_SHA256_0=${IMAGE_SHA256_0_FULL#*@}" >> $GITHUB_OUTPUT
test-localflare:
runs-on: ubuntu-latest
needs:
- build-container
- define-env
strategy:
fail-fast: true
matrix:
START_ROSETTA_SERVER_AFTER_BOOTSTRAP: [true, false]
MODE: [offline, online]
exclude:
- START_ROSETTA_SERVER_AFTER_BOOTSTRAP: true
MODE: offline
- START_ROSETTA_SERVER_AFTER_BOOTSTRAP: false
MODE: online
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: ${{ env.go_version }}
- name: Set up Docker Compose
uses: docker/setup-compose-action@v1
- uses: actions/setup-node@v6
with:
node-version: 20
- run: sudo apt update -y && sudo apt install curl jq -y
- name: Install yarn
run: npm install -g yarn
- name: Run localflare test script
env:
CI: true
ROSETTA_IMAGE: ${{ needs.define-env.outputs.IMAGE_PATH_0 }}@${{ needs.build-container.outputs.IMAGE_SHA256_0 }}
START_ROSETTA_SERVER_AFTER_BOOTSTRAP: ${{ matrix.START_ROSETTA_SERVER_AFTER_BOOTSTRAP }}
shell: bash
run: |
./test-localflare.sh
test-make_build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: ${{ env.go_version }}
- run: (cd server && make build)
test-make_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
with:
go-version: ${{ env.go_version }}
- run: (cd server && make test)