Skip to content

Commit

Permalink
Use github.event.release.tag_name
Browse files Browse the repository at this point in the history
Due to `github.ref_name` being broken on release. See:
https://github.com/orgs/community/discussions/64528
actions/runner#2788
  • Loading branch information
Gal Topper committed Sep 19, 2023
1 parent 923a863 commit 25ccc6a
Show file tree
Hide file tree
Showing 2 changed files with 207 additions and 117 deletions.
117 changes: 0 additions & 117 deletions .github/workflows/push.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,6 @@ on:
- development
- 'integ_[0-9]+\.[0-9]+'

release:
types:
- created

jobs:
test-go:
name: Lint & test Go code
Expand Down Expand Up @@ -97,116 +93,3 @@ jobs:

- name: Run Python tests
run: make test-py

release-docker:
name: Release to docker repository
runs-on: ubuntu-latest
if: github.event_name == 'release'
needs:
- test-go
- test-py

steps:
- name: Dump GitHub context
run: echo "$GITHUB_CONTEXT"
env:
GITHUB_CONTEXT: ${{ toJson(github) }}

- name: Dump runner context
run: echo "$RUNNER_CONTEXT"
env:
RUNNER_CONTEXT: ${{ toJson(runner) }}

- name: Dump github ref
run: echo "$GITHUB_REF"

- uses: actions/checkout@v3

- uses: actions/setup-go@v3
with:
go-version: "^1.19.5"

- name: Build binaries for ${{ matrix.go-os }}
run: make frames-bin
env:
GOARCH: amd64
GOOS: linux
FRAMES_TAG: ${{ github.ref_name }}

- name: Upload binaries
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release upload ${{ github.ref_name }} framesd-*

- name: Login to GCR
run: echo "$GCR_JSON_KEY" | docker login -u _json_key --password-stdin https://gcr.io
env:
GCR_JSON_KEY: ${{ secrets.GCR_IGUAZIO_JSON_KEY }}

- name: Set image tag
run: |
echo FRAMES_TAG=`echo ${{ github.ref_name }} | sed s/^v//` >> $GITHUB_ENV
cat $GITHUB_ENV
- name: Build docker image
run: make build
env:
GOARCH: amd64
GOOS: linux
FRAMES_REPOSITORY: gcr.io/iguazio/

- name: Push frames image to GCR
run: docker push gcr.io/iguazio/frames:${{ env.FRAMES_TAG }}

release-docker-internal:
name: Release to internal docker repository
runs-on: [ self-hosted, linux ]
if: github.event_name == 'release'
needs:
- release-docker

steps:
- name: Login to artifactory
run: docker login -u ${{ secrets.ARTIFACTORY_DOCKER_USERNAME }} -p ${{ secrets.ARTIFACTORY_DOCKER_PASSWORD }} ${{ vars.ARTIFACTORY_REGISTRY }}

- name: Set image tag
run: |
echo FRAMES_TAG=`echo ${{ github.ref_name }} | sed s/^v//` >> $GITHUB_ENV
cat $GITHUB_ENV
- name: Pull docker from public repository
run: docker pull gcr.io/iguazio/frames:${{ env.FRAMES_TAG }}

- name: Tag frames image for artifactory
run: docker tag gcr.io/iguazio/frames:${{ env.FRAMES_TAG }} ${{ vars.ARTIFACTORY_REGISTRY }}/iguazio/frames:${{ env.FRAMES_TAG }}

- name: Push frames image to artifactory
run: docker push ${{ vars.ARTIFACTORY_REGISTRY }}/iguazio/frames:${{ env.FRAMES_TAG }}

release-python-library:
name: Release python library
runs-on: ubuntu-latest
if: github.event_name == 'release'
needs:
- release-docker-internal

steps:
- uses: actions/checkout@v3

- name: Set up python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: 3.7

- name: Set version
run: make set-version

- name: Build v3io-frames python distribution
run: make python-dist

- name: Publish to PyPi
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_TOKEN }}
packages_dir: clients/py/dist/
207 changes: 207 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
# Copyright 2023 Iguazio
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
name: CI

on:
release:
types:
- created

jobs:
test-go:
name: Lint & test Go code
runs-on: ubuntu-latest

steps:
- name: Dump github context
run: echo "$GITHUB_CONTEXT"
env:
GITHUB_CONTEXT: ${{ toJson(github) }}

- name: Dump runner context
run: echo "$RUNNER_CONTEXT"
env:
RUNNER_CONTEXT: ${{ toJson(runner) }}

- name: Dump github ref
run: echo "$GITHUB_REF"

- uses: actions/setup-go@v3
with:
go-version: "^1.19.5"

- uses: actions/checkout@v3

# This gets killed, probably due to memory usage
# - name: Lint
# run: make lint

- name: Run Go tests
run: make test-go
env:
V3IO_API: ${{ secrets.V3IO_API }}
V3IO_ACCESS_KEY: ${{ secrets.V3IO_ACCESS_KEY }}
V3IO_SESSION: container=bigdata,user=admin

test-py:
name: Lint & test Python code
runs-on: ubuntu-latest
env:
V3IO_API: ${{ secrets.V3IO_API }}
V3IO_ACCESS_KEY: ${{ secrets.V3IO_ACCESS_KEY }}
V3IO_SESSION: container=bigdata

steps:
- name: Dump github context
run: echo "$GITHUB_CONTEXT"
env:
GITHUB_CONTEXT: ${{ toJson(github) }}

- name: Dump runner context
run: echo "$RUNNER_CONTEXT"
env:
RUNNER_CONTEXT: ${{ toJson(runner) }}

- name: Dump github ref
run: echo "$GITHUB_REF"

- uses: actions/checkout@v3

- name: Set up python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: 3.7

- name: Install dependencies
run: make python-deps

- name: Lint Python code
run: make flake8

- name: Run Python tests
run: make test-py

release-docker:
name: Release to docker repository
runs-on: ubuntu-latest
if: github.event_name == 'release'
needs:
- test-go
- test-py

steps:
- name: Dump GitHub context
run: echo "$GITHUB_CONTEXT"
env:
GITHUB_CONTEXT: ${{ toJson(github) }}

- name: Dump runner context
run: echo "$RUNNER_CONTEXT"
env:
RUNNER_CONTEXT: ${{ toJson(runner) }}

- name: Dump github ref
run: echo "$GITHUB_REF"

- uses: actions/checkout@v3

- uses: actions/setup-go@v3
with:
go-version: "^1.19.5"

- name: Build binaries for ${{ matrix.go-os }}
run: make frames-bin
env:
GOARCH: amd64
GOOS: linux
FRAMES_TAG: ${{ github.event.release.tag_name }}

- name: Upload binaries
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release upload ${{ github.event.release.tag_name }} framesd-*

- name: Login to GCR
run: echo "$GCR_JSON_KEY" | docker login -u _json_key --password-stdin https://gcr.io
env:
GCR_JSON_KEY: ${{ secrets.GCR_IGUAZIO_JSON_KEY }}

- name: Set image tag
run: |
echo FRAMES_TAG=`echo ${{ github.event.release.tag_name }} | sed s/^v//` >> $GITHUB_ENV
cat $GITHUB_ENV
- name: Build docker image
run: make build
env:
GOARCH: amd64
GOOS: linux
FRAMES_REPOSITORY: gcr.io/iguazio/

- name: Push frames image to GCR
run: docker push gcr.io/iguazio/frames:${{ env.FRAMES_TAG }}

release-docker-internal:
name: Release to internal docker repository
runs-on: [ self-hosted, linux ]
if: github.event_name == 'release'
needs:
- release-docker

steps:
- name: Login to artifactory
run: docker login -u ${{ secrets.ARTIFACTORY_DOCKER_USERNAME }} -p ${{ secrets.ARTIFACTORY_DOCKER_PASSWORD }} ${{ vars.ARTIFACTORY_REGISTRY }}

- name: Set image tag
run: |
echo FRAMES_TAG=`echo ${{ github.event.release.tag_name }} | sed s/^v//` >> $GITHUB_ENV
cat $GITHUB_ENV
- name: Pull docker from public repository
run: docker pull gcr.io/iguazio/frames:${{ env.FRAMES_TAG }}

- name: Tag frames image for artifactory
run: docker tag gcr.io/iguazio/frames:${{ env.FRAMES_TAG }} ${{ vars.ARTIFACTORY_REGISTRY }}/iguazio/frames:${{ env.FRAMES_TAG }}

- name: Push frames image to artifactory
run: docker push ${{ vars.ARTIFACTORY_REGISTRY }}/iguazio/frames:${{ env.FRAMES_TAG }}

release-python-library:
name: Release python library
runs-on: ubuntu-latest
if: github.event_name == 'release'
needs:
- release-docker-internal

steps:
- uses: actions/checkout@v3

- name: Set up python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: 3.7

- name: Set version
run: make set-version

- name: Build v3io-frames python distribution
run: make python-dist

- name: Publish to PyPi
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_TOKEN }}
packages_dir: clients/py/dist/

0 comments on commit 25ccc6a

Please sign in to comment.