github action使用技巧
使用常规命令和环境赋值
- name: Release set path
run: |
touch release.txt
cd openwrt/bin/targets/*/*
rm -rf ./packages
echo "RELEASE_PATH=$PWD" >> $GITHUB_ENV
echo "FILE_DATE=_$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV
目录打包,常量使用
- name: pack bin dir
run: |
tar -zcvf bin_dir.tar.gz ./bin/
mv bin_dir.tar.gz ${{ env.RELEASE_PATH }}/
文件上传(目录或者文件),outputs状态变量
- name: Cloudupload
id: cloudupload
run: |
curl -fsSL git.io/file-transfer | sh
./transfer wss --no-progress ${{ env.RELEASE_PATH }}/bin_dir.tar.gz 2>&1 | tee release.txt
echo "url=$(cat cloudupload.log | grep https | cut -f3 -d' ')" >> $GITHUB_OUTPUT
outputs变量数据
- name: Release set path
run: |
echo "${{ steps.cloudupload.outputs.url }}"
echo "[cloudupload](${{ steps.cloudupload.outputs.url }})" >> release.txt
保存到Artifacts
- name: Artifacts File Save
uses: actions/upload-artifact@main
with:
name: OpenWrt_firmware${{ env.DEVICE_NAME }}${{ env.FILE_DATE }}
path: ${{ env.FIRMWARE }}
# 多个文件
- name: Upload App To Artifact
uses: actions/upload-artifact@v3
if: ${{ env.commit }}
with:
name: ${{ matrix.userName }}-${{ matrix.repoName }}
path: |
TVBoxOSC/apk/*
发布Release,使用release.txt
- name: Release and Upload Assets
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: release_${{ env.tag }}
body_path: release.txt
files: TVBoxOSC/apk/*
#多个
- name: Upload release APKs
uses: actions/upload-artifact@v3
with:
name: release-apk
path: |
element-android/vector-app/build/outputs/apk/*/nightly/*.apk
版本1
版本2,支持shell.nix
创建
shell.nix
到根目录
# 使用 https://github.com/nix-community/nix-environments/blob/master/envs/openwrt/shell.nix
Create
.github/workflows/build.yml
name: "NixShellTest"
on:
pull_request:
push:
workflow_dispatch:
jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: cachix/[email protected]
env:
NIXPKGS_ALLOW_INSECURE: 1
with:
nix_path: nixpkgs=channel:nixos-unstable
- uses: dx-oss/nix-shell-action@v11
env:
NIXPKGS_ALLOW_INSECURE: 1
with:
interpreter: bash
file: shell.nix
script: |
which gcc
7z a -tzip -r -mx=9 dl.zip ./dl
busybox httpd -f -p 0.0.0.0:7171