diff --git a/.github/workflows/ci-pipeline.yaml b/.github/workflows/ci-pipeline.yaml new file mode 100644 index 00000000..c4bc8c8b --- /dev/null +++ b/.github/workflows/ci-pipeline.yaml @@ -0,0 +1,81 @@ +name: CI Pipeline + +on: + push: + branches: + - '*' + tags: + - '*' + +jobs: + build_binaries: + name: Build Binaries + runs-on: ubuntu-20.04 + + steps: + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: 1.22.8 + + - name: Checkout Code + uses: actions/checkout@v3 + + - name: Build + run: | + export PATH="$GOBIN:$PATH" + . build.sh + env: + ARTIFACTS: ${{ runner.temp }}/artifacts + shell: bash + + - name: Upload Build Artifact + uses: actions/upload-artifact@v3 + with: + name: binaries + path: ${{ env.ARTIFACTS }}/binaries + + linux: + name: Linux Tests + runs-on: ubuntu-20.04 + needs: build_binaries + + steps: + - name: Download Build Artifacts + uses: actions/download-artifact@v3 + with: + name: binaries + path: artifacts + + - name: Run Docker Tests + run: . run-docker-tests-linux.sh + shell: bash + + - name: Build Docker Images + run: ./build-images-linux.sh + env: + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + shell: bash + + windows: + name: Windows Tests + runs-on: windows-2022 + needs: build_binaries + + steps: + - name: Download Build Artifacts + uses: actions/download-artifact@v3 + with: + name: binaries + path: artifacts + + # Uncomment this step if needed once windows docker tests are implemented + # - name: Run Docker Tests (Windows) + # run: .\run-docker-tests-windows.sh + # shell: bash + + - name: Build Docker Images + run: .\build-images-windows.sh + env: + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + shell: bash