From 92ffbddb22c4cfb3c1117539a09ca80ca7877cee Mon Sep 17 00:00:00 2001 From: Gabriel Guillou Date: Wed, 26 Jun 2024 01:05:57 +0200 Subject: [PATCH] feat: add build test (#4) --- .github/workflows/auto_nigthly.yml | 17 ++++-- .github/workflows/auto_release.yml | 15 +++-- .github/workflows/auto_testing.yml | 88 ++++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+), 10 deletions(-) create mode 100644 .github/workflows/auto_testing.yml diff --git a/.github/workflows/auto_nigthly.yml b/.github/workflows/auto_nigthly.yml index 5baf641..61b1940 100644 --- a/.github/workflows/auto_nigthly.yml +++ b/.github/workflows/auto_nigthly.yml @@ -8,8 +8,12 @@ jobs: name: auto create and push release runs-on: ubuntu-22.04 steps: + - uses: cachix/install-nix-action@v27 + - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@master + with: + ref: nightly - name: Generate Release version from date id: date @@ -21,12 +25,11 @@ jobs: - name: Generate tar.gz from src id: generate_tar run: | - cd ./src/ PKG_NAME="$(basename "${{ github.repository }}" | sed 's/pkg-//g')" FILE_NAME="src-${PKG_NAME}.tar.gz" echo "PKG_NAME=$PKG_NAME" >> $GITHUB_ENV echo "FILE_NAME=$FILE_NAME" >> $GITHUB_ENV - tar -czvf ${FILE_NAME} * + tar -czvf ${FILE_NAME} src/ FILE_HASH=$(sha256sum ${FILE_NAME} | cut -d ' ' -f 1) echo "FILE_HASH=$FILE_HASH" >> $GITHUB_ENV @@ -38,7 +41,11 @@ jobs: | sed 's/\//\\\//g' ) SRC="src = fetchurl {\n url = \"${URL}\";\n sha256 = \"${{ env.FILE_HASH }}\";\n }" - sed -i "s/src = .\/src/${SRC}/g" ./package.nix + sed -i "s/src = .\/src/src = .\/${{ env.FILE_NAME }}/g" ./package.nix + git add ./${{ env.FILE_NAME }} + nix build + git reset ./${{ env.FILE_NAME }} + sed -i "s/src = .\/${{ env.FILE_NAME }}/${SRC}/g" ./package.nix sed -i "s/version = \".*\";/version = \"${{ env.TAG_NAME }}\";/g" ./package.nix sed -i "1s/.*/{\n fetchurl,/" ./package.nix @@ -49,7 +56,7 @@ jobs: tag_name: ${{ env.TAG_NAME }} prerelease: true files: | - ./src/${{ env.FILE_NAME }} + ./${{ env.FILE_NAME }} ./package.nix - name: Clone RevoluNixPKGS diff --git a/.github/workflows/auto_release.yml b/.github/workflows/auto_release.yml index a3ede10..1d77a72 100644 --- a/.github/workflows/auto_release.yml +++ b/.github/workflows/auto_release.yml @@ -8,8 +8,10 @@ jobs: name: auto create and push release runs-on: ubuntu-22.04 steps: + - uses: cachix/install-nix-action@v27 + - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@master - name: Generate Release version from date id: date @@ -21,12 +23,11 @@ jobs: - name: Generate tar.gz from src id: generate_tar run: | - cd ./src/ PKG_NAME="$(basename "${{ github.repository }}" | sed 's/pkg-//g')" FILE_NAME="src-${PKG_NAME}.tar.gz" echo "PKG_NAME=$PKG_NAME" >> $GITHUB_ENV echo "FILE_NAME=$FILE_NAME" >> $GITHUB_ENV - tar -czvf ${FILE_NAME} * + tar -czvf ${FILE_NAME} src/ FILE_HASH=$(sha256sum ${FILE_NAME} | cut -d ' ' -f 1) echo "FILE_HASH=$FILE_HASH" >> $GITHUB_ENV @@ -38,7 +39,11 @@ jobs: | sed 's/\//\\\//g' ) SRC="src = fetchurl {\n url = \"${URL}\";\n sha256 = \"${{ env.FILE_HASH }}\";\n }" - sed -i "s/src = .\/src/${SRC}/g" ./package.nix + sed -i "s/src = .\/src/src = .\/${{ env.FILE_NAME }}/g" ./package.nix + git add ./${{ env.FILE_NAME }} + nix build + git reset ./${{ env.FILE_NAME }} + sed -i "s/src = .\/${{ env.FILE_NAME }}/${SRC}/g" ./package.nix sed -i "s/version = \".*\";/version = \"${{ env.TAG_NAME }}\";/g" ./package.nix sed -i "1s/.*/{\n fetchurl,/" ./package.nix @@ -49,7 +54,7 @@ jobs: tag_name: ${{ env.TAG_NAME }} prerelease: false files: | - ./src/${{ env.FILE_NAME }} + ./${{ env.FILE_NAME }} ./package.nix - name: Clone RevoluNixPKGS diff --git a/.github/workflows/auto_testing.yml b/.github/workflows/auto_testing.yml new file mode 100644 index 0000000..67f1c2a --- /dev/null +++ b/.github/workflows/auto_testing.yml @@ -0,0 +1,88 @@ +on: + push: + branches: + - testing + +jobs: + auto_ralease: + name: auto create and push release + runs-on: ubuntu-22.04 + steps: + - uses: cachix/install-nix-action@v27 + + - name: Checkout repository + uses: actions/checkout@master + with: + ref: testing + + - name: Generate Release version from date + id: date + run: | + TAG_NAME="testing-$(date +'%Y.%m.%d-%H.%M.%S')" + echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV + echo "Tag name will be: $TAG_NAME" + + - name: Generate tar.gz from src + id: generate_tar + run: | + PKG_NAME="$(basename "${{ github.repository }}" | sed 's/pkg-//g')" + FILE_NAME="src-${PKG_NAME}.tar.gz" + echo "PKG_NAME=$PKG_NAME" >> $GITHUB_ENV + echo "FILE_NAME=$FILE_NAME" >> $GITHUB_ENV + tar -czvf ${FILE_NAME} src/ + FILE_HASH=$(sha256sum ${FILE_NAME} | cut -d ' ' -f 1) + echo "FILE_HASH=$FILE_HASH" >> $GITHUB_ENV + + - name: Generate package.nix + id: generate_package + run: | + URL=$(echo \ + "https://github.com/${{ github.repository }}/releases/download/${{ env.TAG_NAME }}/${{ env.FILE_NAME }}" \ + | sed 's/\//\\\//g' + ) + SRC="src = fetchurl {\n url = \"${URL}\";\n sha256 = \"${{ env.FILE_HASH }}\";\n }" + sed -i "s/src = .\/src/src = .\/${{ env.FILE_NAME }}/g" ./package.nix + git add ./${{ env.FILE_NAME }} + nix build + git reset ./${{ env.FILE_NAME }} + sed -i "s/src = .\/${{ env.FILE_NAME }}/${SRC}/g" ./package.nix + sed -i "s/version = \".*\";/version = \"${{ env.TAG_NAME }}\";/g" ./package.nix + sed -i "1s/.*/{\n fetchurl,/" ./package.nix + + - name: Create Release + uses: softprops/action-gh-release@v2 + with: + name: ${{ env.TAG_NAME }} + tag_name: ${{ env.TAG_NAME }} + prerelease: true + files: | + ./${{ env.FILE_NAME }} + ./package.nix + + - name: Clone RevoluNixPKGS + uses: actions/checkout@master + with: + ref: testing + repository: RevoluNix/revolunixpkgs + token: ${{ secrets.RevoluNixPKGS_TOKEN }} + + - name: Update RevoluNixPKGS + id: update_pkgs + run: | + git config --global user.email "${{ github.event.pusher.email }}" + git config --global user.name "${{ github.event.pusher.name }}" + + URL="https://github.com/${{ github.repository }}/releases/download/${{ env.TAG_NAME }}/package.nix" + rm -rf ./pkgs/${{ env.PKG_NAME }} + mkdir -p ./pkgs/${{ env.PKG_NAME }} + wget -O ./pkgs/${{ env.PKG_NAME }}/package.nix $URL + + git add . + git commit -m "feat: Update/Upload ${{ env.PKG_NAME }} package" + + - name: Push RevoluNixPKGS changes + uses: ad-m/github-push-action@master + with: + github_token: ${{ secrets.RevoluNixPKGS_TOKEN }} + repository: RevoluNix/revolunixpkgs + branch: testing