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

Various fixes for the refactored workflows #4091

Merged
merged 6 commits into from
May 19, 2024
Merged
Show file tree
Hide file tree
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
8 changes: 5 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,16 @@ jobs:
- uses: actions/checkout@v4
- name: Build ckan.exe and netkan.exe
run: ./build --configuration=${{ inputs.configuration }}
- uses: actions/upload-artifact@v4
- name: Upload repack artifact
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.configuration }}-repack-unsigned
path: _build/repack/
retention-days: 7
- uses: actions/upload-artifact@v4
- name: Upload out artifact
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.configuration }}-out
name: ${{ inputs.configuration }}-out-unsigned
path: _build/out/
retention-days: 1
- name: Upload ckan.exe artifact
Expand Down
120 changes: 70 additions & 50 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,57 +21,76 @@ jobs:
smoke-inflator:
uses: ./.github/workflows/smoke.yml

upload-release-s3:
needs:
- test-release
- smoke-inflator
check-dev-build:
runs-on: ubuntu-latest
outputs:
odd-build: ${{ steps.check-version.outputs.odd-build }}
credentials: ${{ steps.credentials.outputs.credentials }}
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
dev-build: ${{ steps.check-version.outputs.dev-build }}
steps:
- uses: actions/checkout@v4
- name: Check version
- name: Treat as dev build if final piece of version is odd
id: check-version
shell: bash
run: |
VERSION=$(egrep '^\s*\#\#\s+v.*$' CHANGELOG.md | head -1 | sed -e 's/^\s*\#\#\s\+v//' -e 's/-.*$//')
if [[ $VERSION =~ [13579]$ ]]
then
echo 'odd-build=true' >> $GITHUB_OUTPUT
echo 'dev-build=true' >> $GITHUB_OUTPUT
fi
- uses: actions/download-artifact@v4
with:
name: Release-repack-unsigned
path: _build/repack/
- name: Credentials
id: credentials
run: echo 'credentials=false' >> $GITHUB_OUTPUT
if: ${{ env.AWS_ACCESS_KEY_ID && env.AWS_SECRET_ACCESS_KEY }}
- name: Configure AWS Credentials

upload-release-s3:
needs:
- test-release
- smoke-inflator
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
if: steps.credentials.outputs.credentials
- name: Push deb to S3
- uses: actions/checkout@v4
- name: Download repack artifact
uses: actions/download-artifact@v4
with:
name: Release-repack-unsigned
path: _build/repack/
- uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Create a version.json file for dev builds on S3
shell: bash
run: |
export PIP_ROOT_USER_ACTION=ignore
pip install gitpython
git config --global --add safe.directory '*'
python bin/version_info.py > _build/repack/Release/version.json
- name: Push ckan.exe, netkan.exe, and version.json to S3
run: aws s3 sync _build/repack/Release s3://${AWS_S3_BUCKET} --follow-symlinks
if: steps.credentials.outputs.credentials

upload-deb:
needs: upload-release-s3
needs:
- check-dev-build
- test-release
- smoke-inflator
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
if: needs.upload-release-s3.outputs.odd-build && needs.upload-release-s3.outputs.credentials
if: needs.check-dev-build.outputs.dev-build
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
- name: Download repack artifact
uses: actions/download-artifact@v4
with:
name: Release-repack-unsigned
path: _build/repack/
Expand All @@ -92,29 +111,33 @@ jobs:
DEBIAN_PRIVATE_KEY: ${{ secrets.DEBIAN_PRIVATE_KEY }}
run: ./build deb-sign --configuration=Release --exclusive
if: ${{ env.DEBIAN_PRIVATE_KEY }}
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Push deb to S3
run: aws s3 sync _build/deb/apt-repo-root s3://${AWS_S3_BUCKET}/deb --follow-symlinks
- name: Push stable APT repo to S3
- name: Push nightly APT repo to S3
run: aws s3 sync _build/deb/apt-repo-dist s3://${AWS_S3_BUCKET}/deb/dists/nightly --follow-symlinks

upload-rpm:
needs: upload-release-s3
needs:
- check-dev-build
- test-release
- smoke-inflator
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
if: needs.upload-release-s3.outputs.odd-build && needs.upload-release-s3.outputs.credentials
if: needs.check-dev-build.outputs.dev-build
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- uses: actions/checkout@v4
- name: Installing rpm build dependencies
- name: Install rpm build dependencies
run: sudo apt-get install -y createrepo-c
- uses: actions/download-artifact@v4
- name: Download repack artifact
uses: actions/download-artifact@v4
with:
name: Release-repack-unsigned
path: _build/repack/
Expand All @@ -127,35 +150,31 @@ jobs:
echo "$DEBIAN_PRIVATE_KEY" | base64 --decode | gpg --batch --import
gpg --list-secret-keys --keyid-format LONG
if: ${{ env.DEBIAN_PRIVATE_KEY }}
- name: Build rpm repository
- name: Build nightly RPM repo
env:
CODENAME: nightly
DEBIAN_PRIVATE_KEY: ${{ secrets.DEBIAN_PRIVATE_KEY }}
run: ./build rpm-repo --configuration=Release --exclusive
if: ${{ env.DEBIAN_PRIVATE_KEY }}
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Push rpm to S3
- name: Push nightly PRM repo to S3
run: aws s3 sync _build/rpm/repo s3://${AWS_S3_BUCKET}/rpm/nightly --follow-symlinks

upload-inflator:
needs: upload-release-s3
needs:
- test-release
- smoke-inflator
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
if: needs.upload-release-s3.outputs.credentials
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
- name: Download repack artifact
uses: actions/download-artifact@v4
with:
name: Release-repack-unsigned
path: _build/repack/
- name: Generate inflator Docker image and publish to Hub
- name: Generate inflator Docker image, publish to Hub, and restart AWS containers
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
Expand All @@ -174,7 +193,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
- name: Download repack artifact
uses: actions/download-artifact@v4
with:
name: Release-repack-unsigned
path: _build/repack/
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/notify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,17 @@ on:

jobs:
notify:
name: Notify Discord
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Clone Discord hooks repo
uses: actions/checkout@v4
with:
repository: DiscordHooks/github-actions-discord-webhook
path: webhook
fetch-depth: 1
- env:
- name: Send notification
env:
WORKFLOW_NAME: ${{ inputs.name }}
HOOK_OS_NAME: ${{ runner.os }}
shell: bash
Expand Down
67 changes: 35 additions & 32 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,10 @@ jobs:
- test-release
- smoke-inflator
steps:
- uses: actions/download-artifact@v4
- name: Download out artifact
uses: actions/download-artifact@v4
with:
name: Release-repack-out
name: Release-out-unsigned
path: _build/out/
- name: Publish ckan.dll to NuGet
env:
Expand All @@ -59,15 +60,16 @@ jobs:
- smoke-inflator
steps:
- uses: actions/checkout@v4
- name: OSX build dependencies
- name: Install OSX build dependencies
run: sudo apt-get install -y libplist-utils xorriso
- uses: actions/download-artifact@v4
- name: Download repack artifact
uses: actions/download-artifact@v4
with:
name: Release-repack-unsigned
path: _build/repack/
- name: Build dmg
run: ./build osx --configuration=Release --exclusive
- name: Upload OSX release
- name: Upload OSX release asset
run: gh release upload ${{ github.event.release.tag_name }} _build/osx/CKAN.dmg
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -78,12 +80,19 @@ jobs:
- test-release
- smoke-inflator
steps:
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
- name: Download repack artifact
uses: actions/download-artifact@v4
with:
name: Release-repack-unsigned
path: _build/repack/
- name: Set Version
- name: Set deb version
run: |
VERSION=$(echo "${{ github.event.release.tag_name }}" | tr -d "v")
echo "DEB_VERSION=${VERSION}.$(date +'%g%j')" >> $GITHUB_ENV
Expand All @@ -104,17 +113,11 @@ jobs:
DEBIAN_PRIVATE_KEY: ${{ secrets.DEBIAN_PRIVATE_KEY }}
run: ./build deb-sign --configuration=Release --exclusive
if: ${{ env.DEBIAN_PRIVATE_KEY }}
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Push deb to S3
run: aws s3 sync _build/deb/apt-repo-root s3://${AWS_S3_BUCKET}/deb --follow-symlinks
- name: Push stable APT repo to S3
run: aws s3 sync _build/deb/apt-repo-dist s3://${AWS_S3_BUCKET}/deb/dists/stable --follow-symlinks
- name: Upload Deb release
- name: Upload deb release asset
run: gh release upload ${{ github.event.release.tag_name }} _build/deb/ckan_${DEB_VERSION}_all.deb
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -125,16 +128,23 @@ jobs:
- test-release
- smoke-inflator
steps:
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- uses: actions/checkout@v4
- name: Installing rpm build dependencies
- name: Install rpm build dependencies
run: sudo apt-get install -y createrepo-c
- uses: actions/download-artifact@v4
- name: Download repack artifact
uses: actions/download-artifact@v4
with:
name: Release-repack-unsigned
path: _build/repack/
- name: Set Version
- name: Set rpm version
run: |
VERSION=$(echo "${{ github.event.release.tag_name }}" | tr -d "v")
VERSION=$(echo "${{ github.event.release.tag_name }}" | tr -d v)
echo "RPM_VERSION=${VERSION}.$(date +'%g%j')" >> $GITHUB_ENV
- name: Build rpm
run: ./build rpm --configuration=Release --exclusive
Expand All @@ -144,21 +154,15 @@ jobs:
run: |
echo "$DEBIAN_PRIVATE_KEY" | base64 --decode | gpg --batch --import
gpg --list-secret-keys --keyid-format LONG
- name: Build rpm repository
- name: Build stable RPM repo
env:
CODENAME: stable
DEBIAN_PRIVATE_KEY: ${{ secrets.DEBIAN_PRIVATE_KEY }}
run: ./build rpm-repo --configuration=Release --exclusive
if: ${{ env.DEBIAN_PRIVATE_KEY }}
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Push rpm to S3
- name: Push stable RPM repo to S3
run: aws s3 sync _build/rpm/repo s3://${AWS_S3_BUCKET}/rpm/stable --follow-symlinks
- name: Upload RPM release
- name: Upload RPM release asset
run: gh release upload ${{ github.event.release.tag_name }} _build/rpm/RPMS/noarch/ckan-${RPM_VERSION}-1.noarch.rpm
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -171,14 +175,13 @@ jobs:
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/download-artifact@v4
- name: Download repack artifact
uses: actions/download-artifact@v4
with:
name: Release-repack-unsigned
path: _build/repack/
- name: Upload ckan.exe
run: gh release upload ${{ github.event.release.tag_name }} _build/repack/Release/ckan.exe
- name: Upload AutoUpdater.exe
run: gh release upload ${{ github.event.release.tag_name }} _build/repack/Release/AutoUpdater.exe
- name: Upload ckan.exe and AutoUpdater.exe release assets
run: gh release upload ${{ github.event.release.tag_name }} _build/repack/Release/ckan.exe _build/repack/Release/AutoUpdater.exe

notify-discord:
needs:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
- name: Download repack artifact
uses: actions/download-artifact@v4
with:
name: Release-repack-unsigned
path: _build/repack/
Expand Down
Loading