Trigger GitLab Image Pipeline #527
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Trigger GitLab Image Pipeline | |
on: | |
schedule: | |
- cron: "00 11,15 * * *" | |
workflow_call: | |
workflow_dispatch: | |
workflow_run: | |
workflows: ["Store version artifacts"] | |
types: | |
- completed | |
jobs: | |
store-version: | |
uses: nextmcloud/.github/.github/workflows/nmc-store-version-artifacts.yml@master | |
trigger-build-pipeline: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Check the current time zone | |
run: echo date +'%:z %Z' | |
- name: Get Workflow run ID | |
id: get-workflow-run-id | |
run: | | |
# Fetch workflows | |
WORKFLOW_NAME="Store version artifacts" | |
WORKFLOW_RUN_ID=$(curl -s "https://api.github.com/repos/nextmcloud/.github/actions/runs" | jq -r --arg WORKFLOW_NAME "$WORKFLOW_NAME" '.workflow_runs[] | select(.name == $WORKFLOW_NAME) | .id') | |
echo "Workflow Run ID: $WORKFLOW_RUN_ID" | |
echo "::set-output name=workflow_run_id::$WORKFLOW_RUN_ID" | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
WORKFLOW_RUN_ID: $WORKFLOW_RUN_ID | |
- name: Get Artifact ID | |
id: get-artifact-id | |
run: | | |
# Get the latest artifact ID | |
ARTIFACT_ID=$(curl -s "https://api.github.com/repos/nextmcloud/.github/actions/runs/$WORKFLOW_RUN_ID/artifacts" | jq -r '.artifacts[0].id') | |
echo "GitHub Actions workspace: ${{ github.workspace }}" | |
echo "Artifact ID: $ARTIFACT_ID" | |
echo "::set-output name=artifact_id::$ARTIFACT_ID" | |
# Construct Artifact URL | |
ARTIFACT_URL="https://api.github.com/repos/nextmcloud/.github/actions/artifacts/$ARTIFACT_ID" | |
echo "::set-output name=artifact_url::$ARTIFACT_URL" | |
echo "Artifact URL: $ARTIFACT_URL" | |
# Construct Download URL | |
set -x | |
DOWNLOAD_URL=$(curl -s "$ARTIFACT_URL" | jq -r '.archive_download_url') | |
set +x | |
echo "::set-output name=download_url::$DOWNLOAD_URL" | |
echo "Download URL: $DOWNLOAD_URL" | |
# Confirm File name | |
FILENAME=$(curl -LJO -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ | |
"https://api.github.com/repos/nextmcloud/actions/runs/$WORKFLOW_RUN_ID/artifacts/$ARTIFACT_ID/zip" \ | |
-w '%{filename_effective}') | |
echo "::set-output name=filename::$FILENAME" | |
echo "File name is: $FILENAME" | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
WORKFLOW_RUN_ID: ${{ steps.get-workflow-run-id.outputs.workflow_run_id }} | |
ARTIFACT_ID: $ARTIFACT_ID | |
ARTIFACT_URL: $ARTIFACT_URL | |
DOWNLOAD_URL: $DOWNLOAD_URL | |
FILENAME: $FILENAME | |
- name: Download and extract versions artifact | |
id: download-artifact | |
run: | | |
curl -LJO -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ | |
"$DOWNLOAD_URL" | |
echo "Downloaded file: $FILENAME" | |
# List workspace contents | |
echo "List directory" | |
ls -a "${{ github.workspace }}" | |
# Extract artifact | |
unzip "${{ github.workspace }}/versions-combined.zip" | |
# Re-list workspace contents | |
echo "List directory" | |
ls -a "${{ github.workspace }}" | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
WORKFLOW_RUN_ID: ${{ steps.get-workflow-run-id.outputs.workflow_run_id }} | |
ARTIFACT_ID: ${{ steps.get-artifact-id.outputs.artifact_id }} | |
ARTIFACT_URL: ${{ steps.get-artifact-id.outputs.artifact_url }} | |
DOWNLOAD_URL: ${{ steps.get-artifact-id.outputs.download_url }} | |
FILENAME: ${{ steps.get-artifact-id.outputs.filename }} | |
- name: Trigger Nmc deployment image building with versions | |
run: | | |
# Read the versions from the file | |
VERSIONS=$(cat "${{ github.workspace }}/versions-combined.txt") | |
# Trigger the GitLab pipeline with versions | |
curl -X POST \ | |
--fail \ | |
-F token=**TOKEN placeholder** \ | |
-F ref=nmc/rtothtest \ | |
"$VERSIONS" \ | |
https://gitlab.devops.telekom.de/api/v4/projects/37742/trigger/pipeline | |
env: | |
GITLAB_TOKEN: ${{ secrets.GITLAB_IMAGE_TRIGGER_TOKEN }} |