Skip to content

Merge pull request #21 from ruedigerp/develop #30

Merge pull request #21 from ruedigerp/develop

Merge pull request #21 from ruedigerp/develop #30

Workflow file for this run

name: Build, Package, Release
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Setup Go
uses: actions/[email protected]
with:
go-version: "1.21"
- name: Checkout repository
uses: actions/[email protected]
with:
fetch-depth: 0
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.MO_CLI_TOKEN }}
# - name: Create Sematic Release Version
# run: |
# git config --global user.email "[email protected]"
# git config --global user.name "dns-manager"
# git config --global credential.helper cache
# npx standard-version
# git push --follow-tags origin main
# - name: release-please
# uses: googleapis/release-please-action@v4
# with:
# # this assumes that you have created a personal access token
# # (PAT) and configured it as a GitHub action secret named
# # `MY_RELEASE_PLEASE_TOKEN` (this secret name is not important).
# token: ${{ secrets.MO_CLI_TOKEN }}
# # this is a built-in strategy in release-please, see "Action Inputs"
# # for more options
# release-type: simple
# target-branch: ${{ github.ref_name }}
# - name: Get the current version
# id: get_version
# run: echo "VERSION=$(git describe --tags $(git rev-list --tags --max-count=1))" >> $GITHUB_ENV
# - name: release-please
# uses: googleapis/release-please-action@v4
# id: release
# with:
# token: ${{ secrets.MO_CLI_TOKEN }}
# release-type: simple
# target-branch: ${{ github.ref_name }}
# - name: Fetch latest tags
# run: git fetch --tags
# - name: Get latest version tag
# id: get_tag
# # run: echo "tag=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
# run: echo "tag=$(git describe --tags $(git rev-list --tags --max-count=1))" >> $GITHUB_ENV
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: "18"
- name: Install dependencies
run: npm install
- name: Apply Changesets
id: changesets
run: |
# Bump the version and commit the changes
npx changeset version
# Push the changes back to the repo
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git push --follow-tags origin ${{ github.ref_name }}
- name: Extract new version
id: get_version
run: echo "tag=$(node -p \"require('./package.json').version\")" >> $GITHUB_ENV
- name: Create release in another repo
run: |
echo "Creating release ${tag}"
gh release create refs/tags/${tag} --title "Release ${tag}" --repo ruedigerp/homebrew-dns-manager
env:
GH_TOKEN: ${{ secrets.MO_CLI_TOKEN }}
- name: Initialize Go dependencies
run: go mod tidy
- name: Cache Go modules
uses: actions/cache@v3
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Execute make all
run: make all
- name: Package artefacts
run: |
for file in builds/*; do
tar -czvf builds/$(basename "$file").tar.gz -C builds $(basename "$file")
done
ls -lisa builds
- name: Upload tarballs/executable
run: |
ls -lisa builds
for tarball in builds/*.tar.gz; do
echo "Tarball: $tarball"
gh release upload "${tag}" "$tarball" --repo ruedigerp/homebrew-dns-manager
done
gh release upload "${tag}" "builds/dns-manager-${tag}-windows-amd64" --repo ruedigerp/homebrew-dns-manager
env:
GH_TOKEN: ${{ secrets.MO_CLI_TOKEN }}
- name: UPDATE BREW / SCOOP
run: |
./release.sh
git config --global user.email "[email protected]"
git config --global user.name "dns-manager"
git config --global credential.helper cache
git clone https://${{secrets.MO_CLI_TOKEN}}@github.com/ruedigerp/homebrew-dns-manager
cd homebrew-dns-manager
cp ../dns-manager.rb .
cp ../dns-manager.json .
cp ../CHANGELOG.md .
git add .
git commit -m " ${tag}"
git push
env:
GH_TOKEN: ${{ secrets.MO_CLI_TOKEN }}