Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: new workflow for downloading artifacts #8391

Draft
wants to merge 5 commits into
base: develop
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 74 additions & 60 deletions .github/workflows/release-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ env:
ARTIFACTS_DOWNLOAD_PATH: ${{ github.workspace }}/artifacts
INSO_DOCKER_IMAGE: kong/inso # By default, registry is docker.io
NOTARY_REPOSITORY: 'kong/notary' # All signatures will be pushed to public notary repository
ARTIFACTS_REPOSITORY: ${{ vars.ARTIFACTS_REPOSITORY }}

jobs:
publish:
Expand Down Expand Up @@ -51,14 +52,27 @@ jobs:
- name: Install packages
run: npm ci

- name: Download all artifacts from release-build.yml
uses: dawidd6/action-download-artifact@v2
# - name: Download all artifacts from release-build.yml
# uses: dawidd6/action-download-artifact@v2
# with:
# github_token: ${{secrets.GITHUB_TOKEN}}
# workflow: release-build.yml
# workflow_conclusion: success
# branch: ${{ env.RELEASE_BRANCH }} # Branch workflow ran on != branch the workflow created
# path: ${{ env.ARTIFACTS_DOWNLOAD_PATH }} # Base path to download all release workflow assets
# repo: ${{ secrets.BUILD_REPOSITORY }}

- name: Download release artifacts from insomnia-ee
uses: robinraju/release-downloader@v1
with:
github_token: ${{secrets.GITHUB_TOKEN}}
workflow: release-build.yml
workflow_conclusion: success
branch: ${{ env.RELEASE_BRANCH }} # Branch workflow ran on != branch the workflow created
path: ${{ env.ARTIFACTS_DOWNLOAD_PATH }} # Base path to download all release workflow assets
repository: ${{ env.ARTIFACTS_REPOSITORY }}
tag: core@${{ env.RELEASE_VERSION }}
fileName: '*'
token: ${{ secrets.EE_DOWNLOAD_TOKEN }}
out-file-path: ${{ env.ARTIFACTS_DOWNLOAD_PATH }}

# - name: Debug downloaded artifacts
# run: ls -lah ${{ env.ARTIFACTS_DOWNLOAD_PATH }}

- name: Set publish metadata # Checksum for provenance must be calculated before moving artifacts temporarily
id: metadata
Expand Down Expand Up @@ -111,39 +125,39 @@ jobs:
prerelease: ${{ env.IS_PRERELEASE }}
draft: false

- name: Publish beta/stable of Insomnia to Insomnia API
if: ${{ !contains(github.event.inputs.version, 'alpha') }}
run: |
curl \
--fail \
--request POST \
--url $INSOMNIA_API_URL/v1/releases \
--header "Authorization: Bearer ${INSOMNIA_API_TOKEN}" \
--header "Content-Type: application/json" \
--data "{ \"app\": \"${RELEASE_APP}\", \"version\": \"${RELEASE_VERSION}\", \"channel\": \"${RELEASE_CHANNEL}\", \"release_date\": \"$(date --rfc-3339=ns | sed 's/ /T/; s/\(\....\).*\([+-]\)/\1\2/g')\" }"
env:
INSOMNIA_API_URL: ${{ secrets.INSOMNIA_API_URL }}
INSOMNIA_API_TOKEN: ${{ secrets.INSOMNIA_API_TOKEN }}
RELEASE_APP: com.insomnia.app
RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
RELEASE_CHANNEL: ${{ contains(github.event.inputs.version, 'beta') && 'beta' || 'stable' }}
# - name: Publish beta/stable of Insomnia to Insomnia API
# if: ${{ !contains(github.event.inputs.version, 'alpha') }}
# run: |
# curl \
# --fail \
# --request POST \
# --url $INSOMNIA_API_URL/v1/releases \
# --header "Authorization: Bearer ${INSOMNIA_API_TOKEN}" \
# --header "Content-Type: application/json" \
# --data "{ \"app\": \"${RELEASE_APP}\", \"version\": \"${RELEASE_VERSION}\", \"channel\": \"${RELEASE_CHANNEL}\", \"release_date\": \"$(date --rfc-3339=ns | sed 's/ /T/; s/\(\....\).*\([+-]\)/\1\2/g')\" }"
# env:
# INSOMNIA_API_URL: ${{ secrets.INSOMNIA_API_URL }}
# INSOMNIA_API_TOKEN: ${{ secrets.INSOMNIA_API_TOKEN }}
# RELEASE_APP: com.insomnia.app
# RELEASE_VERSION: ${{ env.RELEASE_VERSION }}
# RELEASE_CHANNEL: ${{ contains(github.event.inputs.version, 'beta') && 'beta' || 'stable' }}

- name: Publish beta/stable of inso to Insomnia API
if: ${{ !contains(github.event.inputs.version, 'alpha') }}
run: |
curl \
--fail \
--request POST \
--url $INSOMNIA_API_URL/v1/releases \
--header "Authorization: Bearer ${INSOMNIA_API_TOKEN}" \
--header "Content-Type: application/json" \
--data "{ \"app\": \"${RELEASE_APP}\", \"version\": \"${RELEASE_VERSION}\", \"channel\": \"${RELEASE_CHANNEL}\", \"release_date\": \"$(date --rfc-3339=ns | sed 's/ /T/; s/\(\....\).*\([+-]\)/\1\2/g')\" }"
env:
INSOMNIA_API_URL: ${{ secrets.INSOMNIA_API_URL }}
INSOMNIA_API_TOKEN: ${{ secrets.INSOMNIA_API_TOKEN }}
RELEASE_APP: com.insomnia.inso
RELEASE_VERSION: ${{ env.INSO_VERSION }}
RELEASE_CHANNEL: ${{ contains(github.event.inputs.version, 'beta') && 'beta' || 'stable' }}
# - name: Publish beta/stable of inso to Insomnia API
# if: ${{ !contains(github.event.inputs.version, 'alpha') }}
# run: |
# curl \
# --fail \
# --request POST \
# --url $INSOMNIA_API_URL/v1/releases \
# --header "Authorization: Bearer ${INSOMNIA_API_TOKEN}" \
# --header "Content-Type: application/json" \
# --data "{ \"app\": \"${RELEASE_APP}\", \"version\": \"${RELEASE_VERSION}\", \"channel\": \"${RELEASE_CHANNEL}\", \"release_date\": \"$(date --rfc-3339=ns | sed 's/ /T/; s/\(\....\).*\([+-]\)/\1\2/g')\" }"
# env:
# INSOMNIA_API_URL: ${{ secrets.INSOMNIA_API_URL }}
# INSOMNIA_API_TOKEN: ${{ secrets.INSOMNIA_API_TOKEN }}
# RELEASE_APP: com.insomnia.inso
# RELEASE_VERSION: ${{ env.INSO_VERSION }}
# RELEASE_CHANNEL: ${{ contains(github.event.inputs.version, 'beta') && 'beta' || 'stable' }}

# TODO: also take care of aarch64 image
- name: Load the Inso CLI Docker Archive
Expand All @@ -169,14 +183,14 @@ jobs:
type=raw,value=beta,enable=${{ env.IS_PRERELEASE == 'true' && contains(github.event.inputs.version, 'beta') }}
sep-tags: ","

- name: Push Inso CLI docker image tags to Docker Hub
run: |
for tag in ${IMAGE_TAGS//,/ }; do \
docker tag insomnia-inso:temp $tag
docker push $tag; \
done
env:
IMAGE_TAGS: ${{ steps.inso_docker_meta.outputs.tags }}
# - name: Push Inso CLI docker image tags to Docker Hub
# run: |
# for tag in ${IMAGE_TAGS//,/ }; do \
# docker tag insomnia-inso:temp $tag
# docker push $tag; \
# done
# env:
# IMAGE_TAGS: ${{ steps.inso_docker_meta.outputs.tags }}

# Setup regctl to parse platform specific image digest from image manifest
- name: Install regctl
Expand Down Expand Up @@ -251,20 +265,20 @@ jobs:
--package-type insomnia
${{ env.IS_PRERELEASE == 'true' && '--internal' || '--publish' }}

- name: Configure Git user
uses: Homebrew/actions/git-user-config@master
with:
username: ${{ (github.event_name == 'workflow_dispatch' && github.actor) || 'insomnia-infra' }}
# - name: Configure Git user
# uses: Homebrew/actions/git-user-config@master
# with:
# username: ${{ (github.event_name == 'workflow_dispatch' && github.actor) || 'insomnia-infra' }}

- name: Merge git branch into develop
run: |
remote_repo="https://${GITHUB_ACTOR}:${RELEASE_GH_TOKEN}@github.com/${GITHUB_REPOSITORY}.git"
git checkout develop
git merge --no-ff ${{ env.RELEASE_BRANCH }}
git status
git push "${remote_repo}"
env:
RELEASE_GH_TOKEN: ${{ secrets.RELEASE_GH_TOKEN }}
# - name: Merge git branch into develop
# run: |
# remote_repo="https://${GITHUB_ACTOR}:${RELEASE_GH_TOKEN}@github.com/${GITHUB_REPOSITORY}.git"
# git checkout develop
# git merge --no-ff ${{ env.RELEASE_BRANCH }}
# git status
# git push "${remote_repo}"
# env:
# RELEASE_GH_TOKEN: ${{ secrets.RELEASE_GH_TOKEN }}

artifact-provenance:
needs: [publish]
Expand Down
Loading